线程的总结

 

    大家好!偶是一JAVA新人,来博客报个到.....
    今天老师讲解了什么是程序?什么又是进程?什么又是线程?而程序是一个数据的集合。进程是占用内存的数据。线程是运行程序占用量,线程又分为了单线程和多个线程。

线程的创建和启动 三种方法A、B、C
 class A extends Thread{
  public void run(){
  
  }
 }
 
 A a = new A();
 a.start();//将线程放入可执行的队列中,等待系统调度执行。
*****************************************************************************
        class B implements Runnable{
  public void run(){
  
  }
 }
 
 B b = new B();
 Thread t = new Thread(b);
        t.start();
*****************************************************************************
 class C extends TimerTask{
  public void run(){
  
  }
 }
 
 
 C c = new C();
 Timer t = new Timer();
 t.schedule(c, 1000, 2000);
*****************************************************************************

线程的通信
 监视线程
 生产/消费  wait/notify机制

线程的同步
 一。同步和异步

 线程本身的异步的(并行)
 在某些地方需要让线程同步

 如何实现线程同步???
 1. 锁住某个代码块
  synchronized (需要同步的对象) {
   // 需要同步的代码
  }


 2. 锁住某个方法
  public synchronized void quqian(int n) {
 
  }

 3.使用锁对象
  //创建锁
  Lock l = new ReentrantLock();
 
  //上锁
  l.lock();
  //需要同步的代码块
 
  //解锁
  l.unlock();

线程的暂停,停止模型
 线程暂停:
  sleep(1000)
  wait();
  
 线程的停止:
  必须是run方法自然结束
 

 多线程游戏需要暂停
 run(){
  while(是否停止){
   if(是否暂停){
    //逻辑代码
   }
  }
 }
 
线程的状态
 New Thread(新建状态):当线程对象被创建的时候
 Runnable(就绪,可执行):当调用完线程的start方法之后
 Running(运行时状态):线程正在执行run方法
 Not Runnable(非运行状态,阻塞状态,暂停状态,挂起状态):当线程sleep,wait的时候
 Dead(死亡状态,终止状态):线程的run方法执行完毕
 
 
多线程文件复制的实现与单线程实现的比较

    而今天所讲的这些知识,都是用一个小项目来讲的,消费者与生产者的关系,先生产后消费,思考这里面所需要的内容,一步一步实现,对我来说有点难,
很多知识点,都没想到,也没想到去运用它,很多知识点也不是很熟悉,看JPK的API帮助文档,也看的有点头痛,对我来说今天听懂了,算是最大的收获了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值