线程:
一个程序就是一个进程,一个进程可以有多个线程(每个时刻与CPU是一对一的)
现代操作系统采用时间片分配(应该是按需分配)
Thread printThread = new Thread(new Runner(), “PrintThread”); 线程的定义,这里的new Runner()实质是new了一个Runnable子类
等待/通知:
notify(),notifyAll() 通知等待在改对象的(所有的)线程 new Thread(new Notify(),“NotifyThread”);
wait(),wait(long):等待 相当于关,notify相当于开 new Thread(new Wait(),“WaitThread”);
线程池技术:
提前创建一定数量的线程,用户不能干预,线程就固定的那些
好处是减少了线程频繁创建和消亡的开销,也能快不少,并且线程一定量,也能对大量的任务起到缓冲的作用
弊端是不能标识线程和规定线程的优先级
本质:用工作队列连接请求线程和处理线程,请求线程把任务放入工作队列便返回,处理线程就不断从工作队列拿出来执行,没有就等待,放入一个任务就唤醒任意一个处理线程