java 同步与死锁
来源:互联网 发布:dom的编程艺术 编辑:程序博客网 时间:2024/06/07 19:26
1 同步概念:
案例 代码:
package zyl.thread;
class MyThreadDemo implements Runnable{
private int ticket = 5;
public void run()
{
//资源共享的时候需要用到同步
synchronized(this){
for(int i =0;i<10;i++)
{
tell();
// if(ticket>0)
// {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("车票:"+ticket--);
// }
}
}
}
public synchronized void tell()
{
if(ticket>0)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("车票:"+ticket--);
}
}
}
/*
* 死锁:学生找工作(高薪)
* 企业要你有工作经验(经验)
* 解决死锁必须有一方 降低要求
*/
public class ThreadDemo05 {
class MyThreadDemo implements Runnable{
private int ticket = 5;
public void run()
{
//资源共享的时候需要用到同步
synchronized(this){
for(int i =0;i<10;i++)
{
tell();
// if(ticket>0)
// {
// try {
// Thread.sleep(1000);
// } catch (InterruptedException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// System.out.println("车票:"+ticket--);
// }
}
}
}
public synchronized void tell()
{
if(ticket>0)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("车票:"+ticket--);
}
}
}
/*
* 死锁:学生找工作(高薪)
* 企业要你有工作经验(经验)
* 解决死锁必须有一方 降低要求
*/
public class ThreadDemo05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThreadDemo m = new MyThreadDemo();
//五张票 三个窗口买 一起公用五张票的资源
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
Thread t3 = new Thread(m);
t1.start();
t2.start();
t3.start();
}
// TODO Auto-generated method stub
MyThreadDemo m = new MyThreadDemo();
//五张票 三个窗口买 一起公用五张票的资源
Thread t1 = new Thread(m);
Thread t2 = new Thread(m);
Thread t3 = new Thread(m);
t1.start();
t2.start();
t3.start();
}
}
案例结果
车票:5
车票:4
车票:3
车票:2
车票:1
阅读全文
1 0
- java 同步与死锁
- Java 多线程同步与死锁
- JAVA线程同步与死锁
- JAVA - 多线程 - 同步与死锁
- Java中的同步与死锁
- Java多线程之同步与死锁
- Java多线程之同步与死锁
- Java线程同步与死锁认识
- Java多线程的同步与死锁
- Java线程的同步与死锁
- Java 线程同步与死锁 学习笔记
- Java多线程 线程同步与死锁
- Java线程的同步与死锁
- 同步与死锁
- 同步与死锁
- 线程同步与死锁
- 线程同步与死锁
- 多线程 同步与死锁
- 经典.NET面试题目
- 20170528学习笔记整理
- 一段比较坑的求职经历-from android little guy.
- 116. Populating Next Right Pointers in Each Node
- EclipseLink学习(四) --- 多对多映射
- java 同步与死锁
- 51Nod-1008 N的阶乘 mod P【模除】
- 如何取数据二 bean模式
- 【LeetCode】69. Sqrt(x)
- js数组
- 如何取数据三 servlet模式
- Python 装饰器
- IGMP各版本之间的差异,IGMP Snooping和Proxy的区别
- HDU_3450_Counting Sequences_树状数组_离散化