`
IO_oI
  • 浏览: 21912 次
社区版块
存档分类
最新评论

printf 对 线程同步 的影响(未完成)

    博客分类:
  • Java
阅读更多
public class Test implements Runnable {
	// 记录运行次数
	long times = 0;
	int id = 0;
	boolean flag = true;

	Test() {
		new Thread(this).start();
	}

	public void offAndCount() {
		if (flag)
			id++;
		flag = false;
	}

	public void on() {
		times++;
		System.out.print(""); //注释掉这句运行多次,取消注释再运行多次。分别记录 注释 与 未注释 运行的结果,可以发现print对线程同步有影响(猜测:print执行时间较长的原因) 
		flag = true;
	}

	public String runtime() {
		return "On() execute times==" + times+"   ID=="+id;
	}

	// 启动一个新线程
	public void createANewThread() {
		new Thread(new Runnable() {
			public void run() {
				while (true)
					try {
						Thread.sleep(1);
						//每隔1ms打开开关
						on();
					} catch (Exception e) {}
			}
		}).start();
	}

	@Override
	public void run() {
		createANewThread();
		//不断 关闭开关
		while (true)
			offAndCount();
	}

	public static void main(String[] args) {
		Test t = new Test();
		try {
			Thread.sleep(3000);
		} catch (Exception e) {}
		System.out.println(t.runtime());
		System.exit(0);
	}

}
分享到:
评论

相关推荐

    Linux系统编程之线程同步

    4. main 中加flag = 5 将flg在while中-- 这时,主线程输出5次后试图销毁锁,但子线程未将锁释放,无法完成。 5. main 中加pthread_cancel()将子线程取消。 【pthrd_mutex.c】 结论: 在访问共享资源前...

    GD32 Printf重定向

    使用GD32的USART0来实现Printf输出功能

    printf的源代码

    printf的源代码,了解printf具体的代码。printf的源代码,了解printf具体的代码。

    printf函数的原型和重定义

    本文详细介绍了嵌入式开发领域中常用的printf函数重定义的方法,适合于那些想要了解printf函数原理以及对其进行重定义使用的同学

    printf源代码分析

    printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。 printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。 格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。...

    C语言Printf格式详解

    C语言Printf格式详解 C语言Printf格式详解

    Printf函数的分析与实现过程(简单实例)

    Printf函数的分析与实现过程(简单实例).讲述了printf函数的实现原理,及printf 函数的简单实例

    printf重定向printf重定向printf重定向

    重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊重定向啊啊...

    printf格式

    printf格式

    通过JLink的SWD接口实现printf功能!!

    Printf函数在单片机调试过程中可谓功不可没,开发人员可以很直观很方便的获取当前程序的运行状态。但在例如STM32这样的片子中,想要实现printf,就必须借助UART。有没有办法仅凭一个JLink就实现打印功能呢?答案是...

    自定义printf的实现

    多个串口都使用printf打印时,需自定义printf函数

    printf函数输出格式

    必须用与数据类型相匹配的输出格式,才能把数据...C语言的printf函数提供了丰富的输出格式,printf的格式控制的完整格式由前导字符与格式字符构成,即: %前导字符格式字符 其中%:表示格式说明的起始符号,不可缺少。

    vsprintf_printf_

    linux源码中关于printf的功能部分代码,实现了经典的printf函数

    自己写的printf

    自己写的printf,可以支持十进制十六进制,和大家一起学习

    C语言中printf格式

    C语言中printf格式详细介绍了该函数的使用方式,希望对大家有帮助

    printf用法大全,C语言printf格式控制符一览表.docx

    输入输出函数(printf 和 scanf)是C语言中非常重要的两个函数,也是学习C语言必学的两个函数。在C语言程序中,几乎没有一个程序不需要这两个函数,尤其是输出函数(printf),所以这两个函数必须要掌握。 如果在...

    Printf函数的实现

    由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题。

    printf函数详细解释

    printf函数详细解释,有关参数的详细阐述,很有用的资源

    ARM平台实现的printf函数

    ARM平台实现的printf函数

    printf格式控制符

    c语言printf格式控制符,c语言printf格式控制符,c语言printf格式控制符

Global site tag (gtag.js) - Google Analytics