zoukankan      html  css  js  c++  java
  • 多线程

    java中要想实现多线程,有两种手段,一种是继承Thread类,另外一种是实现Runable接口。

    继承Thread类重写run方法

    public class ThreadDemo1 {
         public static void main(String[] args){
             Demo d = new Demo();
             d.start();
             for(int i=0;i<60;i++){
                 System.out.println(Thread.currentThread().getName()+i);
             }
    
         }
     }
     class Demo extends Thread{
         public void run(){
             for(int i=0;i<60;i++){
                 System.out.println(Thread.currentThread().getName()+i);
             }
         }
     }

    实现Runnable接口重写run方法

    public class ThreadDemo1 { public static void main(String[] args){ Demo d = new Demo(); new Thread(d).start(); for(int i=0;i<60;i++){ System.out.println(Thread.currentThread().getName()+i); } } } class Demo implements Runnable{ public void run(){ for(int i=0;i<60;i++){ System.out.println(Thread.currentThread().getName()+i); } } }
    多线程的常用方法

    object.wait():

    在其他线程调用此对象的notify()或者notifyAll()方法前,线程一直处于休眠状态

    Thread.sleep():

    在指定的毫秒数内让当前正在执行的线程休眠(暂停执行),此操作受到系统计时器和调度程序精度和准确性的影响。监控状态依然保持、会自动恢复到可运行状态,不会释放对象锁

     thread.join():

     在一个线程对象上调用,使当前线程等待这个线程对象对应的线程结束。

     Thread.yield():暂停当前正在执行的线程对象,并执行其他线程。

     thread.interrupt()

       中断线程,停止其正在进行的一切。中断一个不处于活动状态的线程不会有任何作用。

       如果线程在调用Object类的wait()方法、或者join()、sleep()方法过程中受阻,则其中断状态将被清除,并收到一个InterruptedException。

     Thread.interrupted():检测当前线程是否已经中断,并且清除线程的中断状态(回到非中断状态)。

     thread.isAlive():如果线程已经启动且尚未终止,则为活动状态。

     同步与死锁

     在多线程中如何找到安全问题所在:
      1,明确哪些代码是多线程运行代码  
      2,明确共享数据
      3,明确多线程运行代码中哪些代码是操作共享数据的

  • 相关阅读:
    人生苦短,我用python-- Day8
    人生苦短,我用python-- Day7
    人生苦短,我用python-- Day6 面向对象
    人生苦短,我用python-- Day5
    人生苦短,我用python-- Day4
    人生苦短,我用python-- Day3
    人生苦短,我用python-- Day2
    人生苦短,我用python-- Day1
    小康陪你学JAVA--------三大循环之Do-while循环
    小康陪你学JAVA--------三大循环之For循环
  • 原文地址:https://www.cnblogs.com/54ljj/p/5405921.html
Copyright © 2011-2022 走看看