码迷,mamicode.com
首页 > 编程语言 > 详细

多线程基础-让程序多元化

时间:2016-01-19 00:18:18      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

一. 线程和进程:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!