Skip to content

Instantly share code, notes, and snippets.

@kazuki-ma
Last active August 29, 2015 14:17
Show Gist options
  • Save kazuki-ma/9a7c26b20426a55f9d70 to your computer and use it in GitHub Desktop.
Save kazuki-ma/9a7c26b20426a55f9d70 to your computer and use it in GitHub Desktop.
Thread test
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/")
public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
static class MyContext {
int i = 0; // default value
}
static ThreadLocal<MyContext> myThreadLocal = ThreadLocal
.withInitial(() -> {
return new MyContext();
}); // thread local.
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
MyContext context = myThreadLocal.get();
// get thread local or initialized local if first get.
Thread currentThread = Thread.currentThread();
System.out.println(String.format("%s \t: count %d",
currentThread.toString(), context.i));
context.i++;
}
}
@kazuki-ma
Copy link
Author

run

ab -n 64 -c 8 http://localhost:8080/ThreadTest/

result

Thread[http-nio-8080-exec-8,5,main] : count 0
Thread[http-nio-8080-exec-12,5,main] : count 0
Thread[http-nio-8080-exec-13,5,main] : count 0
Thread[http-nio-8080-exec-6,5,main] : count 0
Thread[http-nio-8080-exec-11,5,main] : count 0
Thread[http-nio-8080-exec-3,5,main] : count 0
Thread[http-nio-8080-exec-4,5,main] : count 0
Thread[http-nio-8080-exec-9,5,main] : count 0
Thread[http-nio-8080-exec-8,5,main] : count 1
Thread[http-nio-8080-exec-10,5,main] : count 0
Thread[http-nio-8080-exec-8,5,main] : count 2
Thread[http-nio-8080-exec-14,5,main] : count 0
Thread[http-nio-8080-exec-12,5,main] : count 1
Thread[http-nio-8080-exec-12,5,main] : count 2
Thread[http-nio-8080-exec-4,5,main] : count 1
Thread[http-nio-8080-exec-12,5,main] : count 3
Thread[http-nio-8080-exec-4,5,main] : count 2
Thread[http-nio-8080-exec-6,5,main] : count 1
Thread[http-nio-8080-exec-4,5,main] : count 3
Thread[http-nio-8080-exec-9,5,main] : count 1
Thread[http-nio-8080-exec-10,5,main] : count 1
Thread[http-nio-8080-exec-9,5,main] : count 2
Thread[http-nio-8080-exec-9,5,main] : count 3
Thread[http-nio-8080-exec-9,5,main] : count 4
Thread[http-nio-8080-exec-10,5,main] : count 2
Thread[http-nio-8080-exec-8,5,main] : count 3
Thread[http-nio-8080-exec-11,5,main] : count 1
Thread[http-nio-8080-exec-10,5,main] : count 3
Thread[http-nio-8080-exec-14,5,main] : count 1
Thread[http-nio-8080-exec-14,5,main] : count 2
Thread[http-nio-8080-exec-14,5,main] : count 3
Thread[http-nio-8080-exec-3,5,main] : count 1
Thread[http-nio-8080-exec-12,5,main] : count 4
Thread[http-nio-8080-exec-6,5,main] : count 2
Thread[http-nio-8080-exec-4,5,main] : count 4
Thread[http-nio-8080-exec-12,5,main] : count 5
Thread[http-nio-8080-exec-4,5,main] : count 5
Thread[http-nio-8080-exec-5,5,main] : count 0
Thread[http-nio-8080-exec-6,5,main] : count 3
Thread[http-nio-8080-exec-9,5,main] : count 5
Thread[http-nio-8080-exec-11,5,main] : count 2
Thread[http-nio-8080-exec-6,5,main] : count 4
Thread[http-nio-8080-exec-11,5,main] : count 3
Thread[http-nio-8080-exec-5,5,main] : count 1
Thread[http-nio-8080-exec-6,5,main] : count 5
Thread[http-nio-8080-exec-10,5,main] : count 4
Thread[http-nio-8080-exec-3,5,main] : count 2
Thread[http-nio-8080-exec-8,5,main] : count 4
Thread[http-nio-8080-exec-14,5,main] : count 4
Thread[http-nio-8080-exec-12,5,main] : count 6
Thread[http-nio-8080-exec-4,5,main] : count 6
Thread[http-nio-8080-exec-3,5,main] : count 3
Thread[http-nio-8080-exec-6,5,main] : count 6
Thread[http-nio-8080-exec-5,5,main] : count 2
Thread[http-nio-8080-exec-10,5,main] : count 5
Thread[http-nio-8080-exec-9,5,main] : count 6
Thread[http-nio-8080-exec-11,5,main] : count 4
Thread[http-nio-8080-exec-8,5,main] : count 5
Thread[http-nio-8080-exec-14,5,main] : count 5
Thread[http-nio-8080-exec-12,5,main] : count 7
Thread[http-nio-8080-exec-4,5,main] : count 7
Thread[http-nio-8080-exec-3,5,main] : count 4
Thread[http-nio-8080-exec-6,5,main] : count 7
Thread[http-nio-8080-exec-10,5,main] : count 6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment