Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.72 KB | None | 0 0
  1. public void runServer() throws Exception {
  2. final ExecutorService ex = Executors.newSingleThreadExecutor();
  3. final CountDownLatch c = new CountDownLatch(1);
  4.  
  5. HttpServer server = HttpServer.create(new InetSocketAddress(8888), 0);
  6.  
  7. server.createContext("/test", (HttpExchange h) -> {
  8. StringBuilder resp = new StringBuilder();
  9. for (int i = 0; i < 1_000_000; i++)
  10. resp.append(i).append(", ");
  11. String response = resp.toString();
  12. h.sendResponseHeaders(200, response.length());
  13. OutputStream os = h.getResponseBody();
  14. os.write(response.getBytes());
  15. os.close();
  16. c.countDown(); // count down, letting `c.await()` to return
  17. });
  18.  
  19. server.setExecutor(ex); // set up a custom executor for the server
  20. server.start(); // start the server
  21. System.out.println("HTTP server started");
  22. c.await(); // wait until `c.countDown()` is invoked
  23. ex.shutdown(); // send shutdown command to executor
  24. // wait until all tasks complete (i. e. all responses are sent)
  25. ex.awaitTermination(1, TimeUnit.HOURS);
  26. server.stop(0);
  27. System.out.println("HTTP server stopped");
  28. }
  29.  
  30. public void run() throws Exception {
  31. final ExecutorService ex = Executors.newSingleThreadExecutor();
  32. final HttpServer server = HttpServer.create(new InetSocketAddress(8888), 0);
  33.  
  34. server.createContext("/test", (HttpExchange h) -> {
  35. // ... generate and write a response
  36. ex.submit(() -> {
  37. server.stop(0);
  38. System.out.println("HTTP server stopped");
  39. });
  40. });
  41. server.setExecutor(ex);
  42. server.start();
  43. System.out.println("HTTP server started");
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement