java多线程

     今天对java多线程进行了一次总体的了解,线程的启动---->暂停---->中断---->销毁这几个状态进行统一的了解

     线程的启动:

             1.Thread t1 = new Thread();   t1.start();

              2. Runnable r = new Runnable();   Thread t2 = new Thread(r); t2.start();

             3.new Thread(){public void run(){}}.start();

             4.Runnable r = new Runnable(){public void run(){}}; new Thread(r).start();

        这样的话线程就会处于运行状态,在多线程的情况下,每一次的运行情况都不样,一个线程所属的线程组也都不一样。

    假如:我现在有一个需求,我要让一个对象生产一个东西出来,就消费掉,生产一个就消费一个?

     这时候就涉及到了同步的概念,利用锁的机制能够很好的把握不要多生产,也不要多消费。synchronized(对象){同步代码块},可以对函数进行同步,也可以对一个代码块进行同步,找到哪些是需要共享的数据,就对其进行同步使用。

     在JDK1.5以后,我们使用了另外一种锁的机制:使用Lock接口来锁,Lock lock = new ReentrantLock(); lock.lock();就是进行了加锁,然后通过Condition condition = lock.newCondition();通过condition.await();condition.signal();condition.signalAll();来使线程处于等待状态或者唤醒别的对象。最后特别要注意必须对这个锁进行释放,lock.unlock();在try{}catch(Exception e){}finally{lock.unlock()};

 

    说完了启动并且启动之后应该注意的问题,就说说暂停了:Thread暂停是使用Thread.yield()方法来进行暂停操作,短暂的暂停

    

    Thread的中断操作:Thread.interrupt();就是对线程的暂停操作

  如何停止一个线程的运行,不能用Thread.stop();因为现在已经过时了,可以通过一个boolean变量对循环的控制

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值