(1)当访问共同的代码的时候:可以使用同一个Runnable对象,这个Runnable对象中有这个共享数据,比如卖票系统就可以这么做。或者这个共享数据封装在一个对象当中,然后对这个对象加锁,也可以实现数据安全访问。public class Interfacaesharethread {

public static void main(String[] args) {

Mythread1 mythread = new Mythread1();

new Thread(mythread).start();

new Thread(mythread).start();

new Thread(mythread).start();

new Thread(mythread).start();

}

}

/* 实现Runnable接口 */

class Mythread1 implements Runnable {

int index = 0;

public synchronized void run() {

while (true)

System.out.println(Thread.currentThread().getName() + "is running and the index is " + index++);

}

}

(2)当各个线程访问的代码不同时:这时候要使用不同的Runnable对象,

将Runnable对象作为某一个类中的内部类,共享数据作为这个外部类的成员变量,每个线程对共享数据的访问也交给外部类的方法,比便对共享数据的互斥和通信。Runnable对象调用外部类的操作这个共享数据的方法。

public class Innersharethread {

public static void main(String[] args) {

Mythread mythread = new Mythread();

mythread.getThread().start();

mythread.getThread().start();

mythread.getThread().start();

mythread.getThread().start();

}

}

/**

* 通过内部类实现线程的共享变量

*

*/

class Mythread {

int index = 0;

private class InnerThread extends Thread {

public synchronized void run() {

while (true) {

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

+ "is running and index is " + index++);

}

}

}

public Thread getThread() {

return new InnerThread();

}

}

参考文章:

原文:http://tianxingzhe.blog.51cto.com/3390077/1693465

java的多线程访问共享变量_java多线程通信之共享变量相关推荐

  1. java 多线程变量可见性_Java多线程:易变变量,事前关联和内存一致性

    java 多线程变量可见性 什么是volatile变量? volatile是Java中的关键字. 您不能将其用作变量或方法名称. 期. 我们什么时候应该使用它? 哈哈,对不起,没办法. 当我们在多线程 ...

  2. java线程的内存模型_java多线程内存模型

    java多线程内存模型: 可见性 要实现共享变量的可见性,必须保证两点: 1.线程修改后的共享变量能够及时从工作内存刷新到主内存中: 2.其他线程能够及时把共享变量的最新值从主内存更新到自己的工作内存 ...

  3. java隋唐演义游戏下载_JAVA多线程

    第一节 多线程背景知识介绍 多线程作用:可以帮助简化模型,还能编写强大的代码.进程与线程的基础概念:Eclipse QQ都属于进程.进程是程序(任务)的执行过程,它持有资源(共享内存.共享文件)和线程 ...

  4. java多线程 文件夹_java多线程读同一个文件

    java多线程同时读取一个文件,这个方法可行吗?不可行. 多线程能够提高效率是因为现在的cpu普遍是多核cpu, 多条线程可以在多个内核中同时执行来提高计算效率.但是计算机磁盘的磁头只有一个,即使多条 ...

  5. Java模拟售票窗口代码_java多线程模拟售票,多个窗口售票

    package com.ma.thread001; /** * 多线程模拟售票,多个窗口售票 * @author ma * */ public class SellTicktDemo implemen ...

  6. java的默认访问权限_java类的访问权限

    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...

  7. java类默认访问权限_Java的四种访问权限

    ❝ 所谓访问权限,指的就是本类中的成员变量.成员方法对其他类的可见性 ❞ 试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可 ...

  8. java多线程 cpu分配_java多线程总结(转载)

    Java 多线程编程总结 --------------------------------------------------------------------------------------- ...

  9. java 变量的线程可见性_Java多线程——变量可见性

    可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.在单线程环境中,如果向某个变量先写入值,然后在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值.这看起来很自然. 然而,当读操 ...

最新文章

  1. 美国法官驳回特朗普工作签禁令:超出权职范围
  2. 启明云端分享|一组图带你快速了解乐鑫ESP MCU系列产品
  3. JAVASCRIPT校验大全
  4. php 打开pdf文件附件,pdf里怎么链接到附件
  5. Web开发之四:前后端开发模式探讨
  6. wps纸张大小设置成A4_pdf两页合并一页a4,只需这招轻松搞定
  7. 一、VMware及win10虚拟机的安装及环境配置
  8. 如何PDF转WORD文档?这三个方法分享给你
  9. add_days oracle_Oracle日期函数简介
  10. 年度总结 | 回味2022不平凡的一年
  11. 多年来被互联网深深洗脑
  12. 云模型及发生器matlab代码
  13. not discrete but [0, 1]. Specify a discrete sample time in
  14. 【cvpr2020】Referring Image Segmentation via Cross-Modal Progressive Comprehension
  15. 康考迪亚大学获560万加元捐赠以鼓励创造力,是魁北克美术学院有史以来最大一笔捐赠
  16. 测试最常见的21个故障模型
  17. PHP函数记录-trim导致的编码异常
  18. 西安拟制定羊肉泡馍肉夹馍制作标准
  19. elmah_ELMAH:ASP.NET的错误记录模块和处理程序(也包括MVC!)
  20. 《让一切随风》【钟镇涛】

热门文章

  1. 将信号量代码生成静态库以及动态库
  2. 线程共享全局变量(.data和.bbs)
  3. 目录操作相关的系统函数
  4. 如何保证redis高可用?薪资翻倍
  5. 吸水间最低动水位标高_体验长安逸动EV460:再也不用为电动车续驶里程焦虑了...
  6. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III
  7. gym100825G. Tray Bien(轮廓线DP)
  8. 2017-12-07 socket 读取问题
  9. bash 的相关配置
  10. 网络对抗技术作业一 201421410031