• 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();

                  }

             }

         }

    }

  • 相关阅读:
    基础JavaScript练习(一)总结
    零基础JavaScript编码(三)总结
    零基础JavaScript编码(二)
    零基础JavaScript编码(一)
    响应式网格(栅格化)布局总结
    实现常见的技术产品官网的页面架构及样式布局总结
    通过HTML及CSS模拟报纸排版总结
    任务四:定位和居中问题总结
    1. Two Sum
    任务三:三栏式布局总结
  • 原文地址:https://www.cnblogs.com/yunger/p/5760080.html
Copyright © 2020-2023  润新知