当多个线程的执行代码来自同一个类的run方法,既称他们共享相同的代码;当共享访问相同的对象时,既他们共享相同的数据。
演示代码
import java.lang.*;
public class Demo
{
public static void main(String[] args)
{
MyThread thread=new MyThread();
new Thread(thread,"A").start();
new Thread(thread,"B").start();
new Thread(thread,"C").start();
}
}
class MyThread implements Runnable
{
private int sleepTime;
public MyThread()
{
sleepTime=(int)(Math.random()*6000); //获得随机休眠毫秒数
}
public void run()
{
try
{
System.out.println(Thread.currentThread().getName()+"要休息"+sleepTime+"ms");
Thread.sleep(sleepTime);
System.out.println(Thread.currentThread().getName()+"睡醒了。");
}
catch(Exception e)
{
System.out.println(Thread.currentThread().getName()+"被吵醒了!");
}
}
}
运行结果
A要休息5299ms
B要休息5299ms
C要休息5299ms
//漫长的等待
C睡醒了。
A睡醒了。
B睡醒了。
可见,因为是用一个Runnable类型的对象创建的三个新线程,这三个线程就共享了这个对象的私有成员sleepTime变量,在本次运行中,三个线程都休眠了5299毫秒。
分享到:
相关推荐
Qt 线程间共享数据是本文介绍的内容,多的不说,先来啃内容。Qt线程间共享数据主要有两种方式: 使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到...
NET中多线程间资源共享与访问
linux多线程间使用共享内存例程,C++版本。可用于大量数据的多线程共享。
主要介绍了python中多线程与多进程中的数据共享问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
线程间通信方式3:消息传递方式的演示。采用计算演示线程的执行,并采用用户界面线程来实时显示执行的进度,线程间的通信方式采用了3种方式相结合,对多线程间的通信有比较好的学习和研究价值。
多线程进程间交换数据使用的共享内存多线程进程间交换数据使用的共享内存多线程进程间交换数据使用的共享内存多线程进程间交换数据使用的共享内存多线程进程间交换数据使用的共享内存
java核心知识点学习----多线程间的数据共享和对象独立,ThreadLocal详解.pdf
关于线程存储和共享内存描述,帮助大家理解进程间通信的一种简单方式,及线程间数据的独立存储形式。
线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用 mutex。pthread_mutex_lock 声明开始用互斥锁上锁,此后的代码...
NULL 博文链接:https://903497571.iteye.com/blog/1869428
java中的多线程内部类实现数据共享和Runnable实现数据共享借鉴.pdf
java中的多线程内部类实现数据共享和Runnable实现数据共享归类.pdf
Qt线程间共享数据主要有两种方式: 1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。 2)使用singal/slot机制,把数据从一个...
Windows 2000提供的常用对象可分成三类:核心应用服务、线程同步和线程间通讯。其中,开发人员可以使用线程同步对象来协调线程和进程的工作,以使其共享信息并执行任务。此类对象包括互锁数据、临界段、事件、互斥体...
互斥以排他方式防止共享数据被并发修改。互斥锁是一个二元变量,其状态为开锁(允许0)和上锁(禁止1),将某个共享资源与某个特定互斥锁绑定后,对该共享资源的访问如下操作: (1)在访问该资源前,首先申请该互斥...
前几天学习共享内存,和多线程应用写了个小程序,给初学者一点帮助
4、运用指针上下文实现不同线程的数据共享; 5、实现多个客户端同时连接服务器端; 6、服务器端程序和客户端程序可以运行在同一台计算机,也可以运行在两台计算机。 测试方法: 1、打开ServerDemo.exe 2、打开...
├─千锋Python教程:第01章 第一个Python程序与数据存储及数据类型(9集) │ │ .DS_Store │ │ │ ├─code │ │ 1、数据存储.txt │ │ 2、第一个python程序.py │ │ 3、注释.py │ │ 4、输出与输入.py │ ...
Executor框架是Java并发编程中的一个重要工具,它提供了一种管理线程池的方式,使得我们可以更方便地管理线程的生命周期和执行线程任务。 原子操作是指不可被...在两个线程之间共享数据,可以通过以下几种方式实现:
内存模型中的同步模式(memory model synchronization ...不同的内存同步模式标识了线程间数据共享机制的”强弱”程度,富有经验的程序员可以使用”较弱”的同步模式来提高程序的执行效率. 每一个原子类型都有一个 load()