`
javajeye
  • 浏览: 62450 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
  • docong: 这根本不是lazy initial 的问题,而是你没有覆盖Th ...
    ThreadLocal

thread

阅读更多

package thread;

public class ThreadIncDec {

	private int j;

	public static void main(String[] args) {
		/*
		 * 如果用下面的代码,inc(),dec()两个方法要加synchronized,锁的是这个方法所在的对象incDec.
		 */
//		ThreadIncDec incDec = new ThreadIncDec();
//		Inc inc = incDec.new Inc();
//		Dec dec = incDec.new Dec();
//		for (int i = 0; i < 1; i++) {
//			Thread t = new Thread(inc);
//			t.start();
//			t = new Thread(dec);
//			t.start();
//		}
		/*
		 * 如果用下面的代码,inc(),dec()两个方法就不需要加synchronized,两个对象
		 */
		ThreadIncDec incDec = new ThreadIncDec();
		ThreadIncDec incDec1 = new ThreadIncDec();
		Inc inc = incDec.new Inc();
		Dec dec = incDec1.new Dec();
		for (int i = 0; i < 2; i++) {//如果这里用四个线程(i<2),不加syncrhronized就有问题(没有锁定方法入口,可能有别的线程进入inc().Thread-1-inc:2
	//		Thread-0-inc:2)
			Thread t = new Thread(inc);
			t.start();
//			t = new Thread(dec);
//			t.start();
		}
		
	}
	
	//计数加一
	private  void inc() {
		j++;
//		try {
//			Thread.sleep(10);
//		} catch (InterruptedException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		System.out.println(Thread.currentThread().getName() + "-inc:" + j);
	}

	//计数减一
	private  void dec() {
		j--;
		System.out.println(Thread.currentThread().getName() + "-dec:" + j);
	}

	//内部类实现的线程,线程对计数器加一
	class Inc implements Runnable {
		public void run() {
			for (int i = 0; i < 100; i++) {
				inc();
			}
		}
	}

	//内部类实现的线程,线程对计数器减一
	class Dec implements Runnable {
		public void run() {
			for (int i = 0; i < 10; i++) {
				dec();
			}
		}
	}
}




http://www.iteye.com/topic/830964
分享到:
评论

相关推荐

    thread thread thread thread

    thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread thread ...

    AT32F435移植THreadX;AT32F437移植THreadX,移植最新版THreadX

    STM32可以有STM32CubeMX轻松移植THreadX,雅特力从AT43F435/437系列开始不能完全兼容STM32,用不了THreadX了。 本移植采用最新(截至2023年3月12号)的AT32F435/437固件库V2.1.2,THreadX版本V6.2.1;依照雅特力官方...

    2022年RT-Thread全球技术大会国内专场PPT合集(31份).zip

    2022年RT-Thread全球技术大会国内专场PPT合集(31份)。 C RTOS中的RUST应用 CherryUSB协议栈的原理与使用 RISCV指令集开源软件生态 RNDIS设备驱动框架 RT-Thread 电源管理组件 RT-Thread 构建配置系统 RT-Thread ...

    transmittable-thread-local-2.12.1-API文档-中文版.zip

    赠送jar包:transmittable-thread-local-2.12.1.jar; 赠送原API文档:transmittable-thread-local-2.12.1-javadoc.jar; 赠送源代码:transmittable-thread-local-2.12.1-sources.jar; 赠送Maven依赖信息文件:...

    Android:Handler的post()方法和Thread的start()方法执行Thread的run()方法的区别

    System.out.println("Activity--&gt;"+ Thread.currentThread().getName()); } Runnable r = new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { Thread...

    关于C#中Thread.Join()的一点理解

    是第一次在C#中接触Thread,自己研究了一下其中Thread.Join()这个方法,下面谈谈自己的理解。  Thread.Join()在MSDN中的解释很模糊:Blocks the calling thread until a thread terminates  有两个主要问题: ...

    rt-thread源码

    RT-Thread实时操作系统是一个分层的操作系统,它包括了: 底层移植、驱动层,这层与硬件密切相关,由Drivers和CPU移植相构成。 硬实时内核,这层是RT-Thread的核心,包括了内核系统中对象的实现,例如多线程及其...

    transmittable-thread-local-2.12.2-API文档-中文版.zip

    赠送jar包:transmittable-thread-local-2.12.2.jar; 赠送原API文档:transmittable-thread-local-2.12.2-javadoc.jar; 赠送源代码:transmittable-thread-local-2.12.2-sources.jar; 赠送Maven依赖信息文件:...

    ThreadX中文学习手册

    本手册提供了有关ThreadX——Express Logic 公司高性能实时内核的详尽信息。 指南之意义 本手册适用于嵌入式实时软件的开发者。开发者应熟悉标准实时操作系统的功能及C 程序设计。 结构 手册包括七章,五个附录以及...

    RT-Thread1.2.0.rar_STM32 RT-Thread_STM32 SPI TF卡_STM32的SDIO例程_s

    晟睿STM32F103ZET6开发板跑RT Thread,内核为1.2.0,GUI为0.8版本,可以下载到板子上跑。 1、TFT根据RT Thread驱动框架编写,FSMC总线,可直接用。适合常用的9320、9325、9328TFT驱动。 2、SPI W25Qxx Nor flash驱动...

    在STM32L051C8上使用 RT-Thread Nano 实例项目源码

    本资源是我的RT-Thread专栏应用篇《RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread》的工程源码: 一个简单的应用:无线温湿度传感器 一个小内存的芯片:STM32L051C8T6 一个小而美丽的物联网操作系统:RT-Thread ...

    Thread实现多线程

    继承Thread类: 1必须重写run 方法:里面放置的实际的线程体 2 启动线程: 3创建Thread对象 4调用Thread对象的start 方法启动线程

    RTThread Stm32 标准库参考工程.zip_RT-Thread STD库_rtos stm32_rtthread_rt

    RTOS RT-THREAD标准库参考工程

    STM32基于rt_thread操作系统的SDHC卡文件系统读写以及RT_GUI+触屏

    经过了努力,查找了很多资料,终于可以利用STM32的SDIO操作文件系统读写了,但是发现为文件命名有问题,要熟悉rt_thread系统的可以上他官网下载说明书,地址:http://www.rt-thread.org/ 算是对它的一个宣传吧。 这里...

    RT-Thread Studio-v2.2.6-setup-x86-64-202305191040

    RT-Thread,全称是 Real Time-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,允许多个任务同时运行并不意味着处理器在同一时刻真地执行了多个任务。事实上,一个处理器核心在某一...

    threadX的VC开发环境

    ThreadX是优秀的实时嵌入式操作系统,本资源是ThreadX的win32开发环境,用于vs2005,可以简单的在vs2005中编写threadx程序,已经使用过,绝对可以使用

    rt-thread-3.1.3_rtthread_RT-Thread_nano_rtthreadopenocd_RT-Threa

    rtthread nano的模板,有基本的内核部分,可以完成线程调度、信号量传递等等

    rt-thread入门教程PPT

    rt-thread入门教程PPT

    ThreadX API查询手册.chm

    ThreadX操作系统 CHM格式的帮助文档,能够方便地查阅ThreadX的所有函数实现,函数定义,函数描述,函数实例,并且分类整理好了各个类别的函数。 各个相关联的函数API之间支持链接跳转,使用起来相当方便。 格式与VC...

    threadx ucgui touch移植

    s5pv210 threadx ucgui touch移植

Global site tag (gtag.js) - Google Analytics