3.11学习总结

  今日学习了线程与进程的区别与联系。

一.进程和线程基本概念

  1.进程:进程是操作系统中资源分配的基本单位。进程是操作系统对正在运行程序的一种抽象,可以将进程看作程序的一次运行。

  2.线程:线程是操作系统中调度执行的基本单位。一个线程是一个“执行流”,每个线程之间都可以按照顺序执行自己的代码,多个线程“同时”执行多份代码。

二.进程和线程之间的区别与联系

  1.一个进程可以包含多个线程,线程在进程的内部。

  2.进程之间的资源是独立的,线程之间的资源则是共享的。每个进程都有独立的虚拟地址空间,也有之间独立的文件描述符表,同一进程的多个线程之间则共用这一份虚拟地址空间和文件描述符表。

  3.进程是操作系统中资源分配的基本单位,线程是操作系统中调度执行的基本单位。

  4.多个进程同时执行时,如果一个进程崩溃,一般不会影响其他进程,而同一进程内的多个线程之间,如果一个线程崩溃,很可能使得整个进程崩溃。

  5.进程的上下文切换速度比较慢,而线程的上下文切换速度比较快。

  6.进程的创建/销毁/调度开销大,线程的创建/销毁/调度开销相对少很多。 

 

线程的作用:线程的作用很多,举个最为典型的例子:当需要在网络上放一个服务端,一个客户端访问时,就会新建一个线程处理这个客户端的事务,这样的话只要不断新建线程就可以处理多个用户的请求了。

 

 

 

线程的五种状态:

1、新生状态(New)

当一个线程的实例被创建即使用new关键字和Thread类或其子类创建一个线程对象后,此时该线程处于新生状态。 此时线程不是活着的(not alive);

2、就绪状态(Runnable)

通过调用线程实例的start()方法来启动线程使线程进入就绪状态;但还没有被分配到CPU,处于线程就绪队列;此时线程是活着的(alive)。

3、运行状态(Running)

一旦获取CPU,线程就进入运行状态,线程的run()方法才开始被执行,如果在给定的时间内没有执行结束,就会被系统给换下来回到线程的就绪状态,此时线程是活着的(alive)。

4、阻塞状态(Blocked)

通过调用join()、sleep()、wait()或者资源被暂用使线程处于阻塞状态,此时线程是活着的(alive)。

5、死亡状态(Dead)

当一个线程的run()方法运行完毕或被中断或被异常退出,该线程到达死亡状态。处于Dead状态调用start()方法,会出现异常。

 

posted @   Joranger  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示