关于线程的一些个人看法(上)

本文探讨线程的基本概念,指出线程是程序中的执行线索,每个线程有其关联的代码。线程状态包括就绪、运行、synchronize阻塞、wait和sleep挂起以及结束。wait需在synchronized内部调用,而start方法使线程进入就绪状态。sleep让线程主动让出CPU,不释放锁,而wait则会让线程释放锁进入等待池,需通过notify唤醒。
摘要由CSDN通过智能技术生成

线程的基本概念、线程的基本状态以及状态之间的关系

     一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个CPU,它怎么能够同时执行多段程序呢?这是从宏观上来看的,CPU一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,这条网线一会为a传数据,一会为b传数据,由于切换时间很短暂,所以,大家感觉都在同时上网。

     状态:就绪,运行,synchronize阻塞,wait和sleep挂起,结束。wait必须在synchronized内部调用。

     调用线程的start方法后线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized语句时,由运行状态转为阻塞,当synchronized获得锁后,由阻塞转为运行,在这种情况可以调用wait方法转为挂起状态,当线程关联的代码执行完后,线程变为结束状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js 是一种非常受欢迎的服务器端 JavaScript 运行环境,其具有以下优点和缺点: 优点: 1. 非阻塞式I/O:Node.js 使用事件驱动的非阻塞式I/O 模型,可以处理大量并发请求,效率高。 2. 轻量级:Node.js 自身非常轻量级且快速,具有出色的性能和效率。 3. 易于学习和使用:由于 Node.js 是基于 JavaScript 的,因此对于前端开发人员来说,学习和使用 Node.js 相对容易。 4. 社区活跃:Node.js 拥有庞大的社区支持,开源项目丰富,开发者可以轻松找到所需的工具和资源。 5. 可复用性高:Node.js 提供了大量的开源模块,可以方便地在项目中重复使用。 缺点: 1. 单线程:虽然 Node.js 可以通过异步I/O 处理大量并发请求,但由于其本身是单线程的,因此无法充分利用多核处理器。 2. 内存泄漏:由于 Node.js 使用了 V8 引擎来解析 JavaScript 代码,而 V8 引擎使用了内存垃圾回收机制,因此在某些情况下会发生内存泄漏。 3. 不适用于 CPU 密集型任务:由于 Node.js 的单线程模型,无法充分利用多核处理器,因此不适用于 CPU 密集型任务。 个人看法: Node.js 适用于构建高性能、高并发、轻量级的网络应用程序,如聊天应用、实时游戏、在线协作工具等。虽然它在处理 CPU 密集型任务方面存在一些限制,但是在网络应用程序中表现出色,是一个非常优秀的技术栈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值