java多线程之 ---- 线程同步
来源:互联网 发布:搜索字幕的软件 编辑:程序博客网 时间:2024/05/18 01:44
java多线程之线程同步
线程同步
定义:同步是指在同一时间段内只能运行一个线程。
分类:同步方法、同步块。
作用:安全解决共享问题。
同步块:
语法:
synchronized (同步对象) {
需要同步的代码;
}
例子:
public class ThreadDemo implements Runnable{private int ticket = 5;public void run(){for(int i=1;i<=5;i++){synchronized (this){if(ticket>0){ Thread.sleep(1000); System.out.println("卖票:ticket="+ticket--);}} }}
同步方法:
语法:
synchronized 方法返回值 方法名称 (参数列表) {
}
例子:
public class ThreadDemo implements Runnable{private int ticket = 5;public void run(){for(int i=1;i<=5;i++){this.saleTicket();}}public synchronized void saleTicket() {if(ticket>0){Thread.sleep(1000);System.out.println("卖票:ticket="+ticket--);}}
同步方法完整示例:
public class Timer { private static int num = 0; public synchronized void add(String name) { //在执行这个方法过程中,当前对象被锁定 num ++; try { Thread.sleep(1); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name + " 你是第"+num + "个使用Timer的线程"); } } public class TestSync implements Runnable{ Timer timer = new Timer(); public static void main(String[] args) { TestSync testSync = new TestSync(); Thread t1 = new Thread(testSync); Thread t2 = new Thread(testSync); t1.setName("t1"); t2.setName("t2"); t1.start(); t2.start(); } public void run() { timer.add(Thread.currentThread().getName()); } }
5 0
- Java多线程之线程同步
- Java多线程之线程同步
- java多线程之 ---- 线程同步
- JAVA多线程之线程同步
- Java多线程之线程同步
- Java多线程之线程同步
- java多线程之线程同步
- java多线程之synchronized(线程同步)
- java多线程之Lock线程同步
- Java多线程之线程的同步
- java 多线程学习笔记之 线程同步
- java多线程之线程间同步通信
- Java多线程之线程同步和死锁
- Java多线程-3 线程同步之synchronized
- java多线程之线程同步问题
- java多线程之线程同步问题
- Java多线程总结之---线程同步
- 五.java多线程之线程同步
- Android Adapter优化问题
- 初试贪心nyoj6喷水装置(一)
- 显示调用c++动态链接库
- Integer to Roman
- HDU 4355 数轴上的点找使Si^3*Wi最小的和-浮点数三分
- java多线程之 ---- 线程同步
- error LNK2019: 无法解析的外部符号 __imp__CryptBinaryToStringA@20
- c 总结
- Android图片缓存库使用经验总结
- Cookie与Session的区别与联系及生命周期
- 一键安装PPTP服务
- 用JavaScript验证表单
- 图片资源的平铺
- 开始,就现在