`

java 共享资源

 
阅读更多
防止任务在共享资源上产生冲突除了加锁的第二种方式是 根除对变量的共享。线程本地存储是一种自动化机制,可以为使用相同变量的每个不同线程都创建不懂的存储。

public class ThreadLocalVariableHolder {
	private static ThreadLocal<Integer> value = new ThreadLocal<Integer>() {
		private Random rand = new Random(47);

		protected synchronized Integer initialValue() {
			return rand.nextInt(10000);
		}
	};

	public static void increment() {
		value.set(value.get() + 1);
	}

	public static int get() {
		return value.get();
	}

	public static void main(String[] args) throws Exception {
		ExecutorService exec = Executors.newCachedThreadPool();
		for (int i = 0; i < 5; i++) {
			exec.execute(new Accessor(i));
		}
		TimeUnit.SECONDS.sleep(1);
		exec.shutdownNow();
	}
}

class Accessor implements Runnable {
	private final int id;

	public Accessor(int idn) {
		this.id = idn;
	}

	public void run() {
		while (!Thread.currentThread().isInterrupted()) {
			ThreadLocalVariableHolder.increment();
			System.out.println(this);
			Thread.yield();
		}
	}

	public String toString() {
		return "#" + id + ":" + ThreadLocalVariableHolder.get();
	}
}

分享到:
评论

相关推荐

    java读取win共享文件夹

    在Java编程环境中,读取Windows共享文件夹的内容并将其保存到本地是一项常见的任务,尤其在分布式系统或跨平台协作中。下面将详细讲解如何通过Java实现这一功能,以及涉及的相关知识点。 首先,Java中没有内置的...

    java读取局域网共享机器文件

    首先,理解基本概念:局域网(Local Area Network, LAN)是将多台计算机连接在一起形成的网络,共享资源是其核心特性之一。共享文件即是在局域网内的某台机器上设定一个共享目录,其他机器可以通过网络路径访问这些...

    java 读取远程共享文件

    java 读取远程共享文件,一个操作简单的读取远程资源的控件。

    java访问共享文件

    可能需要提供用户名和密码,尤其是访问受保护的共享资源时。 4. **文件操作**: - **读取文件**:使用SmbFile对象的`InputStream`来读取文件内容。 - **写入文件**:使用`OutputStream`来写入数据到共享文件。 -...

    上传Java学习资料,共享资源

    这份"上传Java学习资料,共享资源"的压缩包,很可能是为了帮助初学者或有经验的开发者深入理解Java技术栈,提升开发技能。下面我们将详细探讨Java学习中的关键知识点。 1. **基础语法**:学习Java首先要掌握基础...

    java操作共享文件

    在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...

    JAVA卡对象共享机制的安全分析.pdf

    在信息技术领域中,Java卡技术作为一种智能卡的解决方案,其对象共享机制是实现多应用共存的关键技术。然而,这种机制同样伴随着安全风险。本文旨在分析Java卡对象共享机制的安全问题,并提出了相应的解决策略。 ...

    Java共享网盘(源代码+数据库)

    【Java共享网盘】是一个基于Java技术开发的在线文件存储和分享平台,它结合了jsp和servlet技术来构建项目的后端逻辑。该项目的核心目标是为用户提供一个安全、便捷的在线存储空间,允许用户根据其角色(管理员、普通...

    基于Java的共享学习资源系统的设计与实现【附源码】

    数据库将建立存储管理员账号密码的表和学生账号密码的表,存放资源信息的表、学生个人共享资源的表。 4、系统测试 设计将采用功能测试,进行登录注册功能的测试,验证学生账号密码是否能存进数据库,进行资源的增删...

    JAVA锁:保护共享资源的铠甲.md

    JAVA锁:保护共享资源的铠甲.md

    JAVA实现局域网桌面共享

    接下来,我们将深入探讨JAVA实现局域网桌面共享的相关知识点。 首先,JAVA是一种广泛使用的跨平台编程语言,它的网络编程能力强大,适合处理局域网内的通信问题。实现桌面共享,关键在于创建一个服务器端应用,用于...

    超详细!java访问windows共享目录并下载文件

    在Java编程环境中,有时我们需要与Windows操作系统进行交互,例如访问共享目录并下载其中的文件。这个过程涉及到几个关键的技术点,包括系统调用、网络通信和文件操作。在这个场景下,我们将通过`SmbUtils.java`和`...

    java 操作windows 共享目录方法介绍

    jcifs是一款基于Java语言实现的SMB/CIFS客户端库,它提供了简单易用的API接口来操作Windows共享资源。jcifs可以看作是Java环境下实现文件共享的一个重要工具。 - **版本情况**:jcifs目前最新版本为1.3.12,可以在...

    IPC.rar_IPC_java i_java ipc_java共享内存_共享内存

    标题“IPC.rar_IPC_java i_java ipc_java共享内存_共享内存”以及描述“IPC共享内存,文件映射编程,实现原理详解”都指向了一个核心主题:Java中的进程间通信(IPC)以及如何利用共享内存进行数据交换。在这个话题中...

    java网上教学资源共享系统源码.zip

    java网上教学资源共享系统源码java网上教学资源共享系统源码java网上教学资源共享系统源码java网上教学资源共享系统源码java网上教学资源共享系统源码java网上教学资源共享系统源码java网上教学资源共享系统源码java...

    java开源项目资源

    在IT行业中,Java开源项目资源是开发者们宝贵的财富,它们为学习、开发和创新提供了丰富的素材。这篇资源主要聚焦于Java编程语言的开源项目,涵盖了各种工具和源码,可以帮助我们深入了解Java技术栈,提高开发效率,...

    编程模拟多进程共享临界资源(最终版)java

    编程模拟多进程共享临界资源(最终版)java,支持!

    java笔记 java笔记

    - **互斥锁**:使用`synchronized`关键字或其他同步机制来控制线程对共享资源的访问。 #### 15. 标准I/O流与文件 Java提供了强大的I/O处理能力。 - **文件操作**:读取、写入、删除等操作。 - **跨平台性**:Java...

    JAVA公共资源模块的设计与开发(源代码+论文).zip

    Java提供了线程安全的数据结构(如`ConcurrentHashMap`)和同步机制(如`synchronized`关键字、`Lock`接口),确保在多线程环境下正确地共享资源。此外,使用`java.util.concurrent`包中的工具类可以更高效地处理...

    Java多线程的临界资源.pdf

    Java 多线程的临界资源是指在多线程编程中,多个线程并发访问共享资源时可能出现的问题。这些问题往往是由于线程运行顺序的不确定引起的,是一种时序问题,是多线程所独有的问题。 在 Java 中,多线程的临界资源...

Global site tag (gtag.js) - Google Analytics