/**
*
*
* 模拟:丐帮洪七公和郭靖在路上碰到了黄老邪和老毒物。洪七公用降龙十八掌对付黄老邪郭靖也用降龙十八掌对付老毒物 提醒:不共享数据,但共享代码
*
* @author 够潮
*
*/
public class Demo14 {
/**
*
* 只是共享代码,不共享数据,不必加锁
*
* @param args
*/
public static void main(String[] args){
User user = new User("黄老邪");
User user2 = new User("老毒物");
Thread fight = new Fight(user,"洪七公");
Thread fight2 = new Fight(user2,"郭靖");
fight.start();
fight2.start();
}
}
/**
* 实体类
* @author 够潮
*
*/
class User{
private String name;
public User(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Fight extends Thread{
private User user;
public Fight(User user,String name){
super(name);
this.user = user;
}
public void run(){
String name = Thread.currentThread().getName();
for(int i = 0; i < 10; i++ ){
System.out.println(name+"用降龙十八掌对付"+this.user.getName());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(name+"打败了"+this.user.getName());
}
}
分享到:
相关推荐
linux多线程间使用共享内存例程,C++版本。可用于大量数据的多线程共享。
Qt线程间共享数据主要有两种方式: 1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。 2)使用singal/slot机制,把数据从一个...
主要介绍了Java编程多线程之共享数据代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
当多个线程都要去修改某一个共享数据的时候,需要对数据访问进行同步; 条件同步:threading.Condition 部分代码 import threading class Producer(threading.Thread): def __init__(self, t_name): ...
本代码介绍了如何给线程传递参数,以及用参数在主线程中显示数据
而如果在一个进程中用多线程,彼此之间使用相同的地址空间,共享数据,线程切换的代价很小。多编程并发在企业中开发显得尤为重要,本课程包含Windows多线程编程与C++11高并发编程,通过浅显易懂的代码与讲解,让你的...
在本节的例程中,我们只是要防止线程进入同步代码区域中,所以lpName参数设置为nil。 3、在同步代码前用WaitForSingleObject()函数。该函数使得线程取得互斥对象(同步代码)的拥有权。该函数定义为: DWORD ...
做多媒体应用,经常需要在各线程间共享数据,本例子介绍了一种简便的缓存管理办法。 特点: 1. 初始申请一个缓存区,模拟管道操作,从末尾写入,从开头读取。 2. 线程安全,写入,读取块大小无限制。 3. 代码简单,...
线程安全问题的产生是因为多个线程并发访问共享数据造成的,如果能将多个线程对共享数据的并发访问改为串行访问,即一个共享数据同一时刻只能被一个线程访问,就可以避免线程安全问题。锁正是基于这种思路实现的一种...
使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种...
主要介绍了Java多线程编程之访问共享对象和数据的方法,多个线程访问共享对象和数据的方式有两种情况,本文分别给出代码实例,需要的朋友可以参考下
多线程之间的共享数据 标准数据类型在线程间共享 看以下代码 #coding:utf-8 import threading def test(name,data): print(in thread {} name is {}.format(threading.current_thread(),name)) print(data
在多线程并行的情况下会出现共享数据会线程间读取与写入不一直的情况,为了解决这种情况,通常会使用锁来解决,也就是将并行改为串行。但是在使用穿行违背了使用多线程并发的初衷,这种情况下我们可以考虑采用线程...
每个进程有自己的数据段,代码段和堆栈段。线程通常叫做轻型的进程,它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路径,每个线程共享其所属进程的所有资源,包括打开的文件,内存页面,信号标识及动态分配...
这样可以避免多个线程同时访问共享资源,从而避免数据不一致和其他潜在问题。 4. 基于Http协议:项目使用了Java的HttpURLConnection类来实现基于Http协议的文件下载。这使得项目具有较好的通用性,可以应用于各种...
如果是技术牛点的,正常都会自己重新改写多线程代码来实现海量数据的获取。但是要值得注意的事,如果多线程没调配好可能连单线程的效率都比不上。本次就和大家一起聊一聊单线程多线程的一些需要注意的事项。 知识点 ...
基于C++实现多线程连接池MySQL源码+项目说明+详细代码注释.zip C++ 调用 MYSQL API 连接池 ## environment: * VS2022 * MySQL8.0.27 ## 高并发下频繁处理瓶颈 * 建立通信:`TCP三次握手` * 数据库服务器的`连接认证...
一段比较经典的多线程学习代码。 1、用到了多线程的同步问题。 2、用到了多线程的顺序问题。 如果有兴趣的请仔细阅读下面的代码。注意其中代码段的顺序,思考一下,这些代码的顺序能否互相调换,为什么?这应该对...
} } } // 当多个线程同时修改同一个共享数据时,将涉及数据安全问题 Java高级程序设计-多线程(二)全文共34页,当前为第7页。 3.1.1 模拟银行取款 由于多线程并发问题,一个线程执行余额操作可能未完毕,另外一个...
使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空 间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种...