我测试的一个关于synchronize关键字的例子,如下当我为静态方法inc()加入syn关键字的时候,如果我把Thread.sleep()注释掉,同步效果发生作用,main方法输出了正确的结果1000可是,如...

我测试的一个关于synchronize关键字的例子,如下

当我为静态方法inc()加入syn关键字的时候,如果我把

Thread.sleep()注释掉,同步效果发生作用,main方法输出了正确的结果1000

可是,如果我放开注释,同步效果没了,输出的是不稳定的值,这是为什么??

代码 :

public class Counter {

private static int count = 0;

public synchronized static void inc() {

//这里延迟1毫秒,使得结果明显

// try {

// Thread.sleep(1);

// } catch (InterruptedException e) {

// }

count++;

}

public static void main(String[] args) {

//同时启动1000个线程,去进行i++计算,看看实际结果

for (int i = 0; i < 1000; i++) {

new Thread(new Runnable() {

@Override

public void run() {

{

Counter.inc();

}

}

}).start();

}

//这里每次运行的值都有可能不同,可能为1000

System.out.println("运行结果:Counter.count=" + Counter.count);

}

}

展开

java sleep 失效_java:Thread.sleep()导致同步失效相关推荐

  1. java 手动线程调度_Java Thread 多线程 操作线程

    5.线程的创建和启动 A.继承Thread类或实现Runnable接口,重写或实现run方法,run方法代表线程要完成的任务 B.创建Thread子类或是Runnable的实现类,即创建的线程对象:不 ...

  2. java sleep 循环_java – Thread.sleep()在while循环中

    我注意到NetBeans在我的Java代码中的while循环中警告我关于使用Thread.sleep(),所以我已经对此进行了一些研究.看起来,主要的问题是性能之一,当您的同步状态可能会在计数器仍然处 ...

  3. java stl分解_Java Thread 之間 記憶體空間分析

    Java Thread 之間 記憶體空間分析 SimpleThread.java import com.abc.ChirpControllerDevice; public class SimpleTh ...

  4. java wait 释放_Java:wait()从同步块释放锁

    "在同步方法内调用等待是获取内在锁的简单方法" 这句话是假的,它是文档中的错误. 当线程进入同步方法时,它会获取固有锁. 同步方法中的线程被设置为锁的所有者并且处于RUNNABLE ...

  5. java二元运算符_java – 什么原因导致“二元运算符的错误操作数类型’==’”与第二种类型?...

    我也遇到过这个问题.此外,我试图将问题类的实例传递给接受Object作为参数的方法,我得到以下错误: required: String,Object found: String,SomeClass r ...

  6. mysql使索引失效语句_会导致索引失效语句

    1.使用like关键字模糊查询时,% 放在前面索引不起作用,只有"%"不在第一个位置,索引才会生效(like '%文'–索引不起作用) 2.使用联合索引时,只有查询条件中使用了这些 ...

  7. 导致定时器失效_IIS进程回收导致定时器失效的解决方法(CMD命令)

    公司开发的网站使用的.net,网站中用到了定时器,放在Global.asax.cs文件中,但由于IIS设置了网站进程定期回收,回收后定时器也就没了.如果不让进程回收,又担心程序中有内存泄露.有人说可以 ...

  8. java this 多线程_Java多线程编程的常见陷阱

    1.在构造函数中启动线程 我在很多代码中都看到这样的问题,在构造函数中启动一个线程,类似这样:publicclassA{ publicA(){ this.x=1; this.y=2; this.thr ...

  9. JAVA重点类 多线程Thread 创建 生命周期 同步

    一.多线程基本概念 1.程序(program)是为完成特定任务.用某种语言编写的一组指令的集合.即指一段静态的代码,静态对象. 说明:软件安装好了,但是还没跑起来,此时就是静态代码.比如qq,游戏,还 ...

最新文章

  1. linux启动时间极限优化,Linux启动时间的极限优化
  2. 推荐 Python 十大经典练手项目,让你的 Python 技能点全亮!
  3. 7.08 计算累计差
  4. Object-C 入门介绍
  5. AndroidCamera开发学习笔记01
  6. Git复习(十)之常见报错和疑问
  7. 图像分割综述:FCN、U-Net、PSPNet、DeepLab
  8. 网络直播“黑科技”:Stream Matrix
  9. 迷宫搜索问题最短路_【算法常用模板】总结(更新中)
  10. PyCharm下解决Unresolved Reference问题
  11. 如何围绕业务特性,做企业信息化?
  12. oracle 王景田_清华大学经济管理学院电子简讯
  13. 物联网应用之远程控制
  14. 设计模式——观察者模式(海姆达尔与仙宫人民)
  15. 深入浅出JS—20 生成器控制函数执行
  16. System has not been booted with systemd as init system (PID 1). Can‘t operat
  17. oracle16c,Oracle兵器谱上古神器之-KFED
  18. 课后作业——Day10
  19. 渗透测试——信息搜集
  20. 圆半径r = 1.5,圆柱高h = 3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积

热门文章

  1. Android版本第五人格,第五人格华为版
  2. [C#新手入门 五] AcceptChanges() 的作用
  3. GrapeCity Documents for Excel:GcExcel 5.1.0
  4. 爬取12306车票信息(初级版本)
  5. [转]安装N卡驱动前的准备和一点点小建议
  6. 我想加入阿里,我该怎么做?,详细解说
  7. python woe分箱_python自动分箱,计算woe,iv的实例代码
  8. 将输入框的中文逗号转成英文逗号
  9. 在P2E游戏中崛起的动态NFT
  10. python手机壁纸超清_Python 爬取高清桌面壁纸