多线程


一、什么是进程、线程?
1、 进程(process)是程序的一次动态执行过程
2、线程是程序中最小的执行运算单位,可完成一个独立的顺序控制流程,
3、每一个程序之中必须至少有一个线程这个线程称之为主线程,如果同时运行了多个线程则称之为多线程
他是产生其他子线程的线程,通常它必须最后完成执行,因为会执行各种关闭动作
4、public static void main() 方法是Java主线程的入口

  
二、线程的状态
1.创建状态 (Runable)run()实现数据输出
2.就绪状态     3.运行状态 (已启动的线程对象不能再次调用start()方法否则会抛出lllegaThreadStateException)
4.阻塞状态     5.死亡状态 run()运行完毕     6.join(方法使当前线程暂停执行)
7.Thread.sleep()实现线程的暂时休眠      8.yield()可以暂停当前线程执行 


三、.线程同步以及多线程数据共享引发的问题
1.线程同步(1、同步线程的方法 2、同步代码块)使用关键字synchronized
2.线程安全类型         hashtable                           HashMap  
                              实现Map接口                  实现Map接口
                           继承了 Dictionary          继承了AbstactMap
                    安全效率低不允许空null键值    不安全效率高允许空null键值
                               操作效率低            操作效率高
                              StringBuffer           StringBuilder
                           存储字符串变量         存储字符串变量
                                线程安全            非线程安全
                             多线程效率高              单线程效率高

四、多线程的优缺点
1.充分利用CPU资源    2.简化编程模型    3.良好的用户体验    4.独立完成程序的顺序控制 

原文地址:https://www.cnblogs.com/QQW-HH/p/7101128.html