java Thread:线程同步之互斥(1)
来源:互联网 发布:vba 对话框 输入数据 编辑:程序博客网 时间:2024/05/29 18:07
public class synchThread {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ticket t=new ticket(20);
new productor(t).start();
new seller(t).start();
}
}
class ticket
{
int number=0;
int size;
boolean available=false;
public ticket(int n)
{
size=n;
}
}//ticket
class productor extends Thread
{
ticket t=null;
public productor(ticket t)
{this.t=t;}
public void run()
{
while(t.number<t.size)
{
synchronized(t)
{
System.out.println("producter puts ticket"+(++t.number));
t.available=true;
}
}
System.out.println("Producer ends!");
}
}//producer
class seller extends Thread
{
ticket t=null;
int i=0;
public seller(ticket t)
{
this.t=t;
}
public void run()
{
while(i<t.size)
{
synchronized(t)
{
if(t.available&&i<=t.number)
System.out.println("seller sell ticket"+(++i));
if(i==t.number)
{
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.available=false;
}
}
}
System.out.println("Seller ends!");
}//run
}//seller
/*学习心得
1.用多个线程处理一个对象,实现线程共享
2.关键字synchronized可以实现与一个锁旗标的交互
首先判断对象的锁旗标是否存在,如果在就获得锁旗标,然后就可以执行紧随其后的代码段;如果对象的锁旗标不在,就进入等待状态,直到获得锁旗标
*/
- java Thread:线程同步之互斥(1)
- java Thread:线程同步之互斥(2)
- java多线程Thread线程同步与互斥、锁机制
- java Thread:线程同步之进程通信
- 线程同步之互斥对象(通俗易懂)
- 线程同步互斥之互斥量(Mutex)
- 线程的同步互斥之事件对象(Event)
- 线程同步互斥之信号量对象(Semaphore)
- 线程同步互斥之互斥量(Mutex)
- Linux之线程:同步与互斥
- java 线程(三) 互斥和同步
- Java多线程[3]:线程同步(互斥)
- java中线程的同步:(互斥,协作)
- Java多线程基础(并发、线程安全、同步、互斥)
- java线程同步和互斥
- java 线程同步与互斥
- java 线程同步互斥和生命周期
- 【Java】线程并发、互斥与同步
- Teradata and Data Warehouse Architectures
- 搜索引擎框架简介
- 什么是Web Service
- 诸葛亮:诫子书
- 如果学好SQL有啥好?
- java Thread:线程同步之互斥(1)
- 基于多点通信的PtoP聊天程序
- OGRE中实现鼠标选取
- Linux学习的迷茫
- VC解析XML--使用CMarkup类解析XML
- [转]很好的文章:index.dat的分析(也详细介绍了cookie)
- 爬虫/蜘蛛程序的具体实现(C#)
- struts1.2+spring2.0+hibernate3.1集成开发详解
- .net中 CLI/C++中混合类的使用[CAutoNativePtr智能指针]