2013年7月23日
摘要: 一、线程交互的基础知识void notify():唤醒在此对象监视器上等待的单个线程。 void notifyAll():唤醒在此对象监视器上等待的所有线程。 void wait():导致当前的线程等待,直到其他线程调用此对象的 notify()方法或 notifyAll()方法。 当然,wait()还有另外两个重载方法:void wait(long timeout):导致当前的线程等待,直到其他线程调用此对象的 notify()方法或 notifyAll()方法,或者超过指定的时间量。 void wait(long timeout, int nanos):导致当前的线程等待,直到其他线程调用 阅读全文
posted @ 2013-07-23 16:56 Ruthless 阅读(11298) 评论(0) 推荐(3) 编辑
摘要: 一、同步问题提出线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对象,并修改Foo对象上的数据。package cn.thread;public class Foo { private int x = 100; public int getX() { return x; } public int fix(int y) { x = x - y; return x; }}package cn.thread;public class MyRunn... 阅读全文
posted @ 2013-07-23 16:38 Ruthless 阅读(50422) 评论(6) 推荐(17) 编辑
摘要: 线程可以分为4个状态:New(新生),Runnable(可运行):为了方便分析,还可将其分为:Runnable与Running。blocked(被阻塞),Dead(死亡)。与人有生老病死一样,线程也同样要经历开始(等待)、运行、挂起和停止四种不同的状态。这四种状态都可以通过Thread类中的方法进行控制。下面给出了Thread类中和这四种状态相关的方法。// 开始线程 public void start( ); public void run( ); // 挂起和唤醒线程 public void resume( ); // 不建议使用 public void suspend... 阅读全文
posted @ 2013-07-23 14:49 Ruthless 阅读(23273) 评论(0) 推荐(1) 编辑
摘要: 一、操作系统中线程和进程的概念现在的操作系统是多任务操作系统。多线程是实现多任务的一种方式。进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如在Windows系统中,一个运行的exe就是一个进程。 线程是指进程中的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行很多线程。线程总是属于某个进程,进程中的多个线程共享进程的内存。 “同时”执行是线程给人的感觉,在线程之间实际上是轮换执行。 二、Java中的线程创建多线程的两种方式:继承Thread类和实现Runnable接口。 一个Thread类实例只是一个对象,像J. 阅读全文
posted @ 2013-07-23 11:37 Ruthless 阅读(4715) 评论(0) 推荐(1) 编辑