//线程同步问题
public class TestThread implements Runnable{Timer timer = new Timer();public static void main(String[] args) {TestThread test = new TestThread();Thread t1 = new Thread(test);Thread t2 = new Thread(test);t1.setName("t1");t2.setName("t2");t1.start();t2.start();}public void run() {timer.add(Thread.currentThread().getName());}
}class Timer {private static int num = 0;public void add(String name) {num ++;try {Thread.sleep(1);// ---放大效果} catch(InterruptedException e) {}System.out.println//   可能被打断(name + ", 你是第" + num + "个使用timer的线程");}
}//以下3个类相同,【运行结果】为第一个类的结果,请注释其他2个相同的类
//2,3两个类主要介绍synchronized 的使用方式class Timer {private static int num = 0;public void add(String name) {synchronized(this) { //锁定代码段num ++;try {Thread.sleep(1);// ---放大效果} catch(InterruptedException e) {}System.out.println//   可能被打断(name + ", 你是第" + num + "个使用timer的线程");}}
}class Timer {private static int num = 0;public synchronized void add(String name) {//锁定过程num ++;try {Thread.sleep(1);// ---放大效果} catch(InterruptedException e) {}System.out.println//   可能被打断(name + ", 你是第" + num + "个使用timer的线程");}
}/*运行结果--------------------Configuration: <Default>--------------------
t1, 你是第2个使用timer的线程
t2, 你是第2个使用timer的线程Process completed.*/

转载于:https://www.cnblogs.com/wjchang/archive/2012/05/05/3671691.html

java例程练习(多线程[线程同步问题])相关推荐

  1. java同步与死锁_Java多线程 - 线程同步与死锁

    一.线程同步 1)模拟多个用户同时从银行账户里面取钱 ● Account 类:银行账户类,里面有一些账户的基本信息,以及操作账户信息的方法 //模拟银行账户 classAccount {private ...

  2. Java 多线程 线程同步

    线程同步 1.发生在多个线程操作同一个资源 2.并发:同一个对象被多个线程同时操作 3.于是,就需要线程同步.线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等 ...

  3. 第18章 多线程----线程同步

    Java提供了线程同步的机制来防止资源访问的冲突. 1.线程安全 实际开发中,使用多线程程序的情况很多,如银行排号系统.火车站售票系统等.这种多线程的程序通常会发生问题. 以火车站售票系统为例,在代码 ...

  4. Java的知识点31——线程同步

    线程同步--并发控制 并发:同一个对象多个线程同时操作 线程不安全: 数据有负数.相同 开辟多线程,每个线程都有自己的工作空间  与 主存 进行交互 /*** 线程不安全: 数据有负数.相同* @au ...

  5. JAVA并发编程3_线程同步之synchronized关键字

    在上一篇博客里讲解了JAVA的线程的内存模型,见:JAVA并发编程2_线程安全&内存模型,接着上一篇提到的问题解决多线程共享资源的情况下的线程安全问题. 不安全线程分析 public clas ...

  6. 开课吧Java课堂:多线程如何同步?消息如何传递?

    同步性 因为多线程在你的程序中引入了一个异步行为,所以在你需要的时候必须有加强同步性的方法.举例来说,如果你希望两个线程相互通信并共享一个复杂的数据结构,例如链表序列,你需要某些方法来确保它们没有相互 ...

  7. Java基础21 多线程线程两种实现方式 锁

    一.多线程的概念 1.程序 :一个固定逻辑与数据的集合 就称为程序 例如淘宝 贪吃蛇小游戏 2.CPU: 中央处理器 主要用于协调程序与硬件进行配置的工作 3.并发与并行 1.并发(高并发) 在同一个 ...

  8. 13-多线程01 实现多线程 线程同步 生产者消费者

    1.实现多线程 1.1简单了解多线程[理解] 是指从软件或者硬件上实现多个线程并发执行的技术. 具有多线程能力的计算机因有硬件支持而能够在同一时间执行多个线程,提升性能. 1.2并发和并行[理解] 并 ...

  9. Java并发编程之线程同步

    线程安全就是防止某个对象或者值在多个线程中被修改而导致的数据不一致问题,因此我们就需要通过同步机制保证在同一时刻只有一个线程能够访问到该对象或数据,修改数据完毕之后,再将最新数据同步到主存中,使得其他 ...

最新文章

  1. 卓越软件工程--《微软360度》读后感
  2. VS2008 在IE中 调试 ActiveX控件
  3. sqlserver、oracle数据库排序空值null问题解决办法
  4. 贵州计算机专业强的专科学校,贵州排名靠前的五年制大专学校--贵州计算机学校...
  5. c语言斐波那契数列_剑指Offer-10-I.斐波那契数列
  6. 关于计算机网络的描述错误的是,【单选题】以下关于计算机网络定义的描述中,错误的是...
  7. 筹款の不定方程(洛谷P4956题题解,Java语言描述)
  8. [BZOJ2152]聪聪可可(点分治)
  9. C#正则表达式替换字符串
  10. NYOJ-571 整数划分(三)
  11. LM5117 学习板-BUCK 大功率降压稳压模块 8~52V输入 5~28 V 8A 输出
  12. 大数据与AI平台:物联网时代的数据智能 PPT分享
  13. 电脑怎么装linux系统
  14. 物联网云平台系统设计
  15. (二)对导入的Excel某列进行合并、求和,删除重复行
  16. DINO 论文精度,并解析其模型结构 DETR 的变体
  17. 整理学习之深度迁移学习
  18. DNA binding motif比对算法
  19. Symantec赛门铁克强制型SSL服务器证书_网站安全SSL数字证书
  20. Swift WKWebView详细解读

热门文章

  1. Activity-数据状态的保存
  2. jquery获取input值
  3. [转载] ANTLR——嵌入文法的Actions
  4. 利用数据库来填充UltraWebTree
  5. idea卸载删除旧版重新安装新版后,新版本idea程序打不开闪退的解决方案
  6. python求列表的平均值的用法_python如何求列表平均值?_后端开发
  7. python安装到桌面的路径是什么_Python 获取windows桌面路径的5种方法小结
  8. C# 自定义常用代码段
  9. vue——缓存路由组件
  10. 三个变量存在一个协整方程_存在多个协整关系,如何取舍?