Java基础(七) ---- 线程

线程与进程

进程:系统进行资源分配和调用的独立单元,每一个进程都有它的独立内存空间和系统资源
线程:线程是进程里面的一条执行路径,每个线程同享进程里面的内存空间和系统资源

线程与进程的关系

进程 与 进程 之间的关系:进程之间的内存空间和系统资源是独立的
同一个进程里的多条线程 :线程之间的内存空间和系统资源是共享的

并发与并行

并发是指多个任务在重叠的时间段内执行,可在单个处理器上交替执行,也可在多个处理器上同时执行

并行是指多个任务真正地同时执行,每个任务有自己的处理器或核心去执行,提高系统的处理能力和效率

线程的阻塞

setPriority():线程的优先级别,设置线程有限级别,但只会影响线程的抢到资源的概率,不会直接影响结果
yeild():线程的礼让,线程由运行态转入就绪态,有可能再次争抢到资源
join():线程的合并,将线程加入当前线程中,运行结束后再执行当前线程,线程阻塞的

线程的中断

stop():线程立即终止,该方法已弃用
interrupt():改变当前线程状态,但不会使线程中断。使用isInterrupt()可检测线程的状态

守护线程

含义:一种特殊类型的线程,在Java中用于为其他线程提供服务或执行后台任务
生命周期:当所有非守护线程结束时,虚拟机会自动停止守护线程并退出程序

线程安全

含义:在多线程环境下,对共享资源进行访问和操作时,保证数据的正确性、一致性和可靠性的属性
synchronized:同步机制(同步代码块、同步方法),对共享资源进行同步控制,防止多个线程同时对数据进行修改,从而保证数据的一致性
lock:ReentrantLock对象进行lock()、unlock()
使用线程安全的集合类:ConcurrentHashMap、Vector、Stack、HashTable(对于线程不安全的集合,可以使用集合工具类Colloctions中的sychronizedMap\sychronizedList\sychronizedColloction等方法对线程不安全的集合进行加工变成线程安全)

死锁

含义:
条件:互斥、不可剥夺、请求与保持、循环等待

线程的局部变量共享

ThreadLocal:Java中的一个线程局部变量工具类,它提供了一种简单的方式来管理线程的局部变量
ThreadLocal底层存储Map集合,其中key存储当前线程,value存储待共享的资源
每个线程都可以独立地访问自己的ThreadLocal变量,且线程之间的数据不会相互干扰

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值