线程与多线程的区别:
线程与进程的区别
以一个QQ视频播放器为例:可以播放视频、可以收看弹幕、可以听声音:这个是在系统内部执行的一个进程,这个进程中包含着多个线程来执行:播放视频、收看弹幕、听声音
一个进程至少一个线程;
注意
很多多线程都是模拟出来的, 真正的多线程是指有多个CPU,即多核,如服务器。
如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,不然没有存在的意义,线程切换的很快,所以就有同时执行的错觉;
总结
1.线程就是独立的执行路径;
2.在程序执行时,即使没有创建自己的线程,后台也会有自己的多个线程,如主线程,GC线程;
3.main() 称为主线程,为系统的入口,用于执行整个程序;
4.在一个进程中,如果开辟了多个线程,线程的运行由调度安排调度,调度器是与操作系统紧密相关的,先后顺序是是不能人为干预的。
5.对同一份资源操作时,会存在资源的抢夺的问题,需要加入并发控制;
6.线程会带来额外的开销,如CPU调度时间,并发控制开销;
7.每个线程在自己的工作内存交互,内存控制不当会造成数据不一致;