zoukankan      html  css  js  c++  java
  • 多线程7---volatile关键字,刷新线程工作空间内存到主内存中去,即保持同步

    1. 改成static也不行 private static  boolean isRunning = true; volatile关键字主要用于线程变量在多个线程之间的可见

     1 public class RunThread extends Thread{
     2     private volatile  boolean isRunning = true;
     3     public void setRunning(boolean isRunning) {
     4         System.out.println(Thread.currentThread().getName()+"线程setRunning");
     5         this.isRunning = isRunning;
     6     }
     7 
     8     public void run(){
     9         System.out.println(Thread.currentThread().getName()+"进入run方法...");
    10         while(isRunning) {
    11             //System.out.println(Thread.currentThread().getName()+"线程isRunning");
    12         }
    13         System.out.println(Thread.currentThread().getName()+"线程终止");
    14     }
    15 
    16     public static void main(String[] args) throws Exception {
    17         RunThread rt = new RunThread();
    18         rt.start();
    19         Thread.sleep(3000);
    20         rt.setRunning(false);
    21         System.out.println(Thread.currentThread().getName()+"线程isRunning值被设置成false");
    22         Thread.sleep(100);
    23         System.out.println(Thread.currentThread().getName()+"::"+rt.isRunning);
    24     }
    25     /* 不加volatile关键字, 主内存中的isRunning不会被刷新,永远都是true.所以线程不会终止,加了会把rt线程的工作内存变量刷新到主内存
    26      * Thread-0进入run方法...
    27         main线程setRunning
    28         main线程isRunning值被设置成false
    29         main::false
    30      */
    31 }
    View Code
  • 相关阅读:
    Linux NFS服务器的安装与配置
    Genymotion加速下载虚拟镜像速度慢失败Connection timeout
    人脸识别的损失函数
    caffe服务器搭建血泪记录
    shell
    ZigZag Conversion
    SSH阅读笔记
    numpy数组扩展函数repeat和tile用法
    高效网络小结
    Bag of Tricks for Image Classification with Convolutional Neural Networks论文笔记
  • 原文地址:https://www.cnblogs.com/bravolove/p/7944500.html
Copyright © 2011-2022 走看看