zoukankan      html  css  js  c++  java
  • Java多线程相关知识

    1)wait()  notify()  sleep()

    sleep是Thread类的函数,wait和notify是Object的函数。

    sleep的时候keep对象锁,wait的时候release 对象锁。

    sleep时监控状态依然保持。wait进入等待池,只有针对该对象发出了notify才会进入对象锁池。

    Sleep时间过了就会恢复运行,wait后等到notify了,也不一定是立即运行。

    Wait和notify是非static函数,sleep是Thread类的static函数。

    2)stop()  destroy()  suspend()

    都是Thread类的函数,都不推荐使用。

    stop放弃了所有的lock,会使得对象处于一种不连贯状态。

    destroy的时候如果还keep了某些资源的lock,那就死定了

    suspend会继续持有所有的lock,容易发生死锁。

    3)创建线程:

    继承Thread类,override它的abstract函数run

    实现Runnable接口,写run函数。

    4)让线程跑起来:

    start()函数

    5)例子:四个线程,两个inc,两个dec,没有顺序:

    public class ThreadTest {

         private int j;

         public static void main(String[] args) {

             ThreadTest tt=new ThreadTest();

             Inc inc= tt.new Inc();

             Dec dec= tt.new Dec();

            

             for(int i=0;i<2;i++){

                  Thread t=new Thread(inc);

                  t.start();

                  t=new Thread(dec);

                  t.start();

             }

         }

         private synchronized void inc(){

             j++;

             System.out.println(Thread.currentThread().getName()

    +"-inc:"+j);

         }

         private synchronized void dec(){

             j--;

             System.out.println(Thread.currentThread().getName()

    +"-dec:"+j);

         }

         class Inc implements Runnable{

             public void run() {

                  for(int i=0;i<100;i++){

                       inc();

                  }            

             }       

         }

         class Dec implements Runnable{

             public void run() {

                  for(int i=0;i<100;i++){

                       dec();

                  }

             }

         }

    }

  • 相关阅读:
    java中如何模拟真正的同时并发请求?
    安全并发之先行发生原则
    定时器的实现原理及参考
    kafka扫盲笔记,实战入门
    空手套白狼,硬阅java字节码class文件
    Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
    如何获取java运行时动态生成的class文件?
    微软职位内部推荐-SDEII
    微软职位内部推荐-Senior SDE
    微软职位内部推荐-Software Engineer II-Senior Software Engineer for Satori
  • 原文地址:https://www.cnblogs.com/yunger/p/5760080.html
Copyright © 2011-2022 走看看