public class Test{
public static volatile int t = 0;
//如果没有下面的全局锁标识,则结果不一定为10*1000
public static String lock="1";
public static void main(String[] args){

Thread[] threads = new Thread[10];
for(int i = 0; i < 10; i++){
//每个线程对t进行1000次加1的操作
threads[i] =new Thread(new Runnable(){

//或者把锁对象放在这里

//public String lock="1";
@Override
public void run(){
//如果没有下面的锁标识,则结果不一定为10*1000
synchronized (lock) {
for(int j = 0; j < 1000; j++){
t = t + 1;
}
}

}
});
threads[i].start();
}

//等待所有累加线程都结束
while(Thread.activeCount() > 1){
Thread.yield();
}

//打印t的值
System.out.println(t);
}
}

最新文章

  1. Jade之Template Inheritance
  2. mysqld参数配置
  3. SQL SERVER中非聚集索引的覆盖,连接,交叉,过滤
  4. hdu 2057 A+B Again
  5. python和tk实现桌面番茄时间(1)
  6. 【开源推荐】AllJoyn:打造全球物联网的通用开源框架
  7. Android基于Retrofit2.0 +RxJava 封装的超好用的RetrofitClient工具类(六)
  8. MSSQL2008 R2 数据库展开报错:值不能为空 参数名:viewInfo
  9. 错误解决记录------------rhel安装Mysql软件包依赖 mariadb组件
  10. NOIP-扫雷游戏
  11. Day24--Python--常用模块03--正则表达式
  12. REST风格的增删改查(2)
  13. 我的Java之旅 第六课 JAVA WEB 请求与响应
  14. DNS服务器
  15. django rest_framework入门二-序列化
  16. 【Linux_Unix系统编程】Chapter9 进程凭证
  17. 树莓派与Arduino Leonardo使用NRF24L01无线模块通信之基于RF24库 (四) 树莓派单子节点查询
  18. 常见 core dump 原因分析signal 11 - SIGSEGV
  19. 高效率Oracle SQL语句
  20. C# 动态生成word文档 [C#学习笔记3]关于Main(string[ ] args)中args命令行参数 实现DataTables搜索框查询结果高亮显示 二维码神器QRCoder Asp.net MVC 中 CodeFirst 开发模式实例

热门文章

  1. C#应用程序配置文件(XML序列化) - 开源研究系列文章
  2. PostgreSQL(02): PostgreSQL常用命令
  3. [cocos2d-x]关于坐标系
  4. 通过Sqoop来传输mysql/oracle/vertica数据至Hive
  5. node.js接收前端上传的文件并保存到其他位置+后端代码支持进度条
  6. 线上代码已变更,客户没有刷新浏览器,导致点击菜单后找不到相对路由js文件无法加载XXX路由,解决办法如下
  7. Node.js学习笔记----day04
  8. Django-Ajax、form组件
  9. Sentinel熔断与限流
  10. 【WinForm】窗体之间传值的几种方式