进程和线程
在多任务系统中,每个独立执行的程序称为进程
一个进程又可以包含一个或多个线程,一个线程就是一个程序内部的执行线索,如果要 一程序中实现多段代码同时交替运行,就需产生多个线程,并指定每个程序所要运行的程序代码段
Thread.currentThread().getName(); 返回当前线程对象
new Thread().start(): start() 开始启用线程,调用线程的run()方法;
用Thread类创建线程
要将一段代码放在一个新的线程上执行,该代码应该在Thread类的子类的run()函数中
run()方法执行完毕,该线程结束
Runnable接口 : 实现该接口的类能作为参数传递给Thread()类
Synchronized(){} 同步代码块 如果 Synchronized 放在函数修饰前面,则为同步函数
如:
class producer implements Runnable
{
Q q;
public producer(Q q)
{
this.q=q;
}
public void run()
{
int i=0;
while(true)
{
synchronized(q)
{
if(bFull)
wait();
if(i==0)
{
q.name="zhangsan";
try{Thread.sleep(1);}catch(Exception e){}
q.sex="male";
}
else
{
q.name="lisi";
q.sex="female";
}
notify();
}
i=(i+1)%2;
}
}
}
class Consumer implements Runnable
{
Q q;
public Consumer(Q q)
{
this.q=q;
}
public void run()
{
while(true)
{
synchronized (q)
{
if(!q.bFull)
wait();
System.out.println(q.name);
System.out.println(":"+q.sex);
notify();
}
}
}
}
class Q
{
String name="unknown";
String sex="unknown";
}
class ThreadComunation
{
public static void main(String [] args)
{
Q q= new Q();
new Thread(new producer(q)).start();
new Thread(new Consumer(q)) .start();
}
}