volatile关键字相信了解Java多线程的读者都很清楚它的作用。volatile关键字用于声明简单类型变量,如int、float、boolean等数据类型。如果这些简单数据类型声明为volatile,对它们的操作就会变成原子级别的。但这有一定的限制。例如,下面的例子中的n就不是原子级别的:
1.package mythread;
2.
3.public class JoinThread extends Thread
4.{
5. public static volatile int n = 0;
6. public void run()
7. {
8. for (int i = 0; i < 10; i++)
9. try
10. {
11. n = n + 1;
12. sleep(3); // 为了使运行结果更随机,延迟3毫秒
13.
14. }
15. catch (Exception e)
16. {
17. }
18. }
19.
20. public static void main(String[] args) throws Exception
21. {
22.
23. Thread threads[] = new Thread[100];