进程:一个独立功能的程序
线程:进程中的一个实体
总结:
1.一个程序至少有一个进程,一个进程至少有一个线程
2.进程拥有独立的内存单元(多个应用程序互不影响),进程中的多线程是共享内存(一个内存死掉,整个进程死掉)
3.线程的执行必须依存于进程中,进程控制执行多个线程
4.多线程的意义:一个进程中多个任务同时进行
线程分类:
1.前台线程:前台线程执行完毕>应用程序可以退出
2.后台程序:应用程序结束>后台线程自动结束
设置前台后台:isBackground=false/true;
~线程创建默认为 前台线程
线程创建:Thread
一个工程消耗时间较长,使用多线程(其他线程中操作消耗时间较长的任务)
Join:
在哪个线程中出现Join,那么当前线程要等调用者线程执行完成之后,才会继续向下执行
线程池
ThreadPool 默认为后台线程,且自动提取线程任务执行
线程同步 卖票问题
同一个时间,只能有一个任务访问共享的资源
使用繁琐,必须包装共享的数据
使用线程同步会影响性能
每次只允许一个线程访问,会阻塞线程
所以除非必要,不要使用线程同步