java多线程定义_告诉你什么是java多线程定义及线程安全

展开全部

举个简单易懂的例子,多线程相当于e69da5e6ba9062616964757a686964616f31333365666163一条马路上的多条车道,单车道行驶车辆速度较慢,且可能产生拥堵,多车道可缓解车速、拥堵情况。

线程是指进程中的一个执行流程,一个进程中可以运行1-n个线程。也可以说是在同一个进程内又可以执行多个任务,而每一个任务我们就可以看成是一个线程。

是程序的执行单元,执行路径。是程序使用CPU的最基本的单位

如果程序只有一条执行路径,那么该程序就是单线程程序

如果程序有多条执行路径,那么该程序就是多线程程序

2、多线程的意义:

多线程不是为了提高程序的执行速度,而是为了提高程序的使用率。

多线程的执行都是为了抢占CPU的使用率。

不能保证多线程程序会在什么时候优先抢到使用权,所以线程的执行具有随机性

3、多线程的优点:

充分利用硬件资源。由于线程是cpu的基本调度单位,所以如果是单线程,那么最多只能同时在一个处理器上运行,意味着其他的CPU资源都将被浪费。而多线程可以同时在多个处理器上运行,只要各个线程间的通信设计正确,那么多线程将能充分利用处理器的资源。

多线程程序能将代码量巨大,复杂的程序分成一个个简单的功能模块,每块实现复杂程序的一部分单一功能,这将会使得程序的建模,测试更加方便,结构更加清晰,更加优雅

为了避免阻塞,单线程应用程序必须使用非阻塞I/O,这样的I/O复杂性远远高于同步I/O,并且容易出错。

4、多线程的缺点:

线程安全:由于统一进程下的多个线程是共享同样的地址空间和数据的,又由于线程执行顺序的不可预知性,一个线程可能会修改其他线程正在使用的变量,这一方面是给数据共享带来了便利;另一方面,如果处理不当,会产生脏读,幻读等问题,好在Java提供了一系列的同步机制来帮助解决这一问题,例如内置锁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值