线程

作者: 关先生的IT博客 | 来源:发表于2016-11-01 11:43 被阅读0次

    线程的调用必须使用Thread类中的start方法,实现Runnable接口

        void{ 
        Runner1 r = new Runner1();//一个线程对象
        //Thread t = new Thread(r); //切成一个子线程;
        //方法1存在,方法2不存在;这个为Runnable接口的子方法
        t.start();}
        class Runner1 implements Runnable{} //方法1;实现接口
        class Runner1 extends Thread;(直接调用r.start)//方法2;继承
    

    isAlive()判断现成是否还活着,是否终止
    getPriority()获得线程的优先级数值
    setPriority()设置线程的优先级..
    ...等等.

      sleep方法throws InterruptedException
    
      while(true){
        System.out.println("==="+new Date()+"===");
        try{sleep(1000);}catch(InterruptedException e){return;}
      注意:重写的方法不能抛出继承父类的不同的异常,无法直接throws Exception.
      以上的方法太过于简单,如果正在运用一个资源时候直接退出是不好的.
      stop方法,更粗暴.直接无响应杀死.尽量不使用
       while(flag){} boolean flag = true;//来这样判断,进程.
    
        join方法中t1.join即为先执行run中的程序,结束时开始执行主程序,相当于方法调用
        if(i%10==0){yield()};让出内存,让别人执行一会.
    
        ti.setPriority(Thread.NORN_Priority +3);//在正常优先级中+3;
    
        Thread.currentThread().isAlive()//找到这个线程,判断线程是否存在  
    
        synchronized(this)//锁住当前线程,实现线程同步的弊端.
        死锁问题,用例如if(a==1),synchronized(o1)我们要顺序完成这线程,
        我们synchronized(o2)设置为if(a==0)则执行死锁o2,放到o1线程中.o1放到o2中,完成死锁.
        一个进程被锁住不进行同步的时候,这个时候依旧会影响到没有锁的同步对象,需要特别注意
    
        注意wait()与notify()阻塞的使用以及叫醒.需要使用try,catch.
        notify是叫醒其他多个线程进行执行.而非是对自己进行叫醒.
        wait时别的线程可以访问锁定对象,调用wait时必须锁定该对象,
        而sleep时别的线程也不可以访问锁定对象.

    相关文章

      网友评论

          本文标题:线程

          本文链接:https://www.haomeiwen.com/subject/dfsfuttx.html