线程

进程:操作系统运行程序的基本单位,是操作系统分配资源的基本单位
 动态性,并发性,独立性

线程:进程中的一个执行单元,
   一个进程中所有的线程共享该进程的资源,每个线程可以独立调度
多线程优点:最大程度利用资源,减少时空开销

线程创建方式:
 c1 extends Thread{
    run(){
      线程体;
      
    }
 
  }
 
c2 implements Runnable{

  run(){

   线程体

  }

}

启动线程:
   继承Thread     new c1().start();
   实现Runnable   C2 cc= new C2();  new Thread(cc).start();
线程:进程一个执行单元,共享进程资源,可以独立调度
多线程:减少时空开销,充分利用系统资源

创建线程:
  1 extends Thread         
  2 implements Runnable

启动线程
 new Thread子类().start();
 new Thread(Runnable实现类).start();


线程生命周期
  新建--(start())-->就绪--(抢到cpu执行权)-->运行---->死亡
                         
                     运行---->阻塞--->就绪
        

  从运行---1 sleep() 2wait() 3等待锁--->阻塞 
  就绪<----1睡眠时间结束 2notify()  3锁可用---阻塞


调度线程:
  join(); yield(); sleep()

线程的优先级:
  1-10
  setPriority();  getPriority();
线程的分类:
  用户 后台(守护 生命周期随着守护的线程的结束也结束)
    setDamon(true)(写在start()之前)
  垃圾回收机制 gc


线程同步(线程安全)synchronized 
  多个线程排队访问一部分关键性的代码或数据,不能让多个线程同时访问。
  为了解决多个线程同时访问出现的数据冲突问题

 如何同步(原则:尽量减少同步的代码)
  同步方法
  同步代码块

死锁代码设计的问题
    x1       x2
A   锁上x1{ 需要使用x2 }
B   锁上x2{ 需要使用x1 }

 线程的通信:
   wait()   notify()  notifyAll()(必须执行在synchronized代码中)

 多个线程共享一部分资源。
   

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值