Java学习,多线程
来源:互联网 发布:scala map json 编辑:程序博客网 时间:2024/05/29 03:40
JAVA中,从语言层次上就支持多线程,多线程的同步和互斥可以使用wait 和 notify来解决。需要注意的是wait和notify所对应的等待队列必须是同一对象的。现在学习多线程对我来说还是太早了,先了解这么多吧!
生产者消费者问题:
class Test
{
public static void main(String[] args)
{
Queue q=new Queue();
Producer p=new Producer(q);
Consumer c=new Consumer(q);
p.start();
c.start();
}
}
class Producer extends Thread
{
Queue q;
Producer(Queue q)
{
this.q=q;
}
public void run()
{
for(int i=0;i<10;i++)
{
q.put(i);
System.out.println("Producer put "+i);
}
}
}
class Consumer extends Thread
{
Queue q;
Consumer(Queue q)
{
this.q=q;
}
public void run()
{
while(true)
{
System.out.println("Consumer get "+q.get());
}
}
}
class Queue
{
int value;
boolean bFull=false;
public synchronized void put(int i)
{
if(!bFull)
{
value=i;
bFull=true;
notify();
}
try
{
wait();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public synchronized int get()
{
if(!bFull)
{
try
{
wait();
}
catch(Exception e)
{
e.printStackTrace();
}
}
bFull=false;
notify();
return value;
}
}
{
public static void main(String[] args)
{
Queue q=new Queue();
Producer p=new Producer(q);
Consumer c=new Consumer(q);
p.start();
c.start();
}
}
class Producer extends Thread
{
Queue q;
Producer(Queue q)
{
this.q=q;
}
public void run()
{
for(int i=0;i<10;i++)
{
q.put(i);
System.out.println("Producer put "+i);
}
}
}
class Consumer extends Thread
{
Queue q;
Consumer(Queue q)
{
this.q=q;
}
public void run()
{
while(true)
{
System.out.println("Consumer get "+q.get());
}
}
}
class Queue
{
int value;
boolean bFull=false;
public synchronized void put(int i)
{
if(!bFull)
{
value=i;
bFull=true;
notify();
}
try
{
wait();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public synchronized int get()
{
if(!bFull)
{
try
{
wait();
}
catch(Exception e)
{
e.printStackTrace();
}
}
bFull=false;
notify();
return value;
}
}
- Java学习,多线程
- Java多线程学习笔记
- Java学习:多线程(1)
- java多线程学习总结
- java多线程学习
- java多线程学习总结
- java多线程学习
- java多线程学习
- Java多线程学习笔记
- [Java]多线程学习网站
- java多线程学习1
- Java学习笔记---多线程
- Java多线程举例学习
- Java多线程学习总结
- java多线程学习
- java基础学习--多线程
- java多线程学习总结
- java多线程学习
- 在SQL Server中快速删除重复记录
- 一个LINUX狂人的语录
- 外企工作日志8
- 35 岁前程序员要规划好的四件事
- 用无序链表实现字典ADT(C++描述)
- Java学习,多线程
- HooTech MP3 to SWF Converter v2.4.841
- Building Internet Firewalls (2nd Edition)
- F-Secure Anti-Virus Client Security ver. 7.00.515 for Windows
- ActiveSWF Professional ver. 1.9.3
- Notepad++ 4.0.2
- .net中实现数据表的封锁
- asp.net 1.1 安装手册
- 初到哈尔滨的感受