一、什么是进程、线程?
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.独立完成程序的顺序控制