标签:
一. 线程和进程:
1)进程是操作系统里运行的一个任务,一个应用程序运行在一个进程中。
2)进程是包含了某些资源的内存区域,操作系统利用进程把它的工作划分为功能单元。
3)进程包含一个或多个单元称为线程(thread)。
4)操作系统创建一个进程后,该进程会自动申请一个主线程。
5)线程的划分小于进程,使得多线程程序的并发性高,进程在执行过程中拥有独立的内存单元,多个线程共享内存,从而提高程序的运行效率。
二. 并发:
1)OS划分每一个线程,尽可能均匀分配给每个线程。
2)获取时间片的线程被CPU运行,其他线程全部等待。
3)微观上程序走走停停,宏观上都在运行。
三. java实现多线程:一种继承Thread类,另外是实现Runable接口 ex: Thread(ThreadDemo1.java) Runnable(ThreadDemo2.java)
1) Thread和Runnable区别:如果一个类继承Thread,则不适合资源共享。但是如果实现Runnable接口的话,则很容易实现资源共享。 (ThreadDemo11.java & ThreadDemo12.java)
2)判断线程是否启动 ThreadDemo13.java 3)强制执行线程 .join(); ThreadDemo14.java *sleep(3000): 让当前线程休眠一段时间,使得其他线程会继续执行,可让低优先级的线程得到执行机会,同优先及高优先的线程有执行机会。
*yield(): 让当前线程让出CPU占有权,时间不可设定,把机会让给了同等优先级的其他线程,不可让给较低线程。
3)守护线程 .setDaemon(true); 当进程中只剩下守护线程后,所有守护线程被终止 ThreadDemo15.java 4)线程操作API ThreadDemo5.java 5)多线程并发安全 : 多个线程并发读写同一个临界资源时会发生"线程并发安全问题" 常见的临界资源:多线程共享实例变量、静态公共变量 ThreadDemo17.java(售票窗口V1) --> 同步代码块 ThreadDemo18.java 6)死锁(生产类和消费类)
标签:
原文地址:http://www.cnblogs.com/romanjoy/p/5140825.html