多线程

多线程

一个进程里面有多个线程,多线程程序
一个线程就是一个任务==run方法
一个线程对象只能启动一次,运行结束后死亡
为什么多线程?

  • 快,合理利用cpu,压榨cpu
  • 简化编程模型
    线程之间能否共享数据
    堆里的对象是公用的
    栈里的不公用

创建线程

  1. 继承Threead 任务不同用
    通过继承线程对象,实现里面的run方法
    创建线程对象
    通过start()启动线程
    start()
  2. 实现Runnable 任务相同用,一般用这个
    通过new Thread(thread).start()

线程的调度

setPriority()设置线程优先级(1~10)
sleep() 线程休眠 释放cpu 不释放锁
yield() 礼让
join() 必须优先把加入的线程任务执行完才会执行其余线程
interrupt() 中断 将isInterrupt() 变为true
isInterrupt() 通过当前线程获取后判断是否自己死掉
setDaemon(true) 其他线程都完了,最后退出

继承和实现接口

实现接口好处:
避免单继承

  1. 实现Callable

线程安全问题

数据共享是产生

重写规则

重写父类没抛异常,子类也不能抛

posted @ 2022-07-15 20:28  chahune  阅读(9)  评论(0编辑  收藏  举报