线程

线程的调用必须使用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时别的线程也不可以访问锁定对象.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。 首先讲...
    李欣阳阅读 2,515评论 1 15
  • 该文章转自:http://blog.csdn.net/evankaka/article/details/44153...
    加来依蓝阅读 7,393评论 3 87
  • 写在前面的话: 这篇博客是我从这里“转载”的,为什么转载两个字加“”呢?因为这绝不是简单的复制粘贴,我花了五六个小...
    SmartSean阅读 4,803评论 12 45
  • Java多线程学习 [-] 一扩展javalangThread类 二实现javalangRunnable接口 三T...
    影驰阅读 3,001评论 1 18
  • 一、认识多任务、多进程、单线程、多线程 要认识多线程就要从操作系统的原理说起。 以前古老的DOS操作系统(V 6....
    GT921阅读 1,033评论 0 3