一、概念理解
进程:程序关于某数据集合的一次运行活动
线程:进程运行的逻辑单元
并发:同一时间段同一实体的两个或多个事件的发生
并行:同一时刻不同实体上的两个或多个事件发生
线程安全
指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时候使用多线程,我们只需要关注系统的内存,cpu是不是够用即可。
线程不安全
线程不安全就意味着线程的调度顺序会影响最终结果
多进程:操作系统同时运行多个任务(程序)
多线程:一个进程里运行不止一个线程,同一程序中多个顺序流在执行
二、为什么用,适用场景,优缺点
为什么用:提高CPU使用率,提高效率,提高性能
适用场景:1.耗时或大量占用处理器的任务阻塞用户界面操作(聊天)
2.各个任务必须等待外部资源(文件上传下载)
优点:1.提高用户使用效率、
2.设置优先级以优化性能
3.没有进行处理的任务时可以将处理器时间然给其他任务
4.可以随时停止任务
5.占用大量处理时间的任务可以定期将处理器时间让给其他任务
缺点:1.耗时阻塞用户界面操作
2.各个任务必须等待外部资源
3.资源竞争产生死锁
4.对共有变量的读和写,产生错误。
三、如何理解多线程和多进程
四、进程状态解析
五.实现方法
1.继承java.lang.thread
2.实现Runable接口