`
arne3166
  • 浏览: 130229 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

线程冲突2

阅读更多
import java.io.*;

class DataFile {
	public DataFile() {
		try {
			FileIO.writeOneString( "Hello ","zliner.txt");
		}catch( FileIOException e) {}
	}
	void fileIO() {
		try {
			String str = FileIO.readOneString( "zliner.txt" );
			FileIO.writeOneString( str, "zliner.txt" );
		}catch( FileIOException e) {}
	}
}

class ThreadedFileIO extends Thread {
	DataFile df;
	ThreadedFileIO( String threadName, DataFile d ) {
		df = d;
		setName( threadName );
		start();
	}
	public void run() {
		int i = 0;
		while( i++ < 4 ) {
			try {
				df.fileIO();
				String str = FileIO.readOneString( "zliner.txt" );
				System.out.println( getName() + ";    " + "zliner.txt contains: " + str );
				sleep( 5 );
			}catch( InterruptedException e ) {}
			catch( FileIOException e) {}
		}
	}
}

public class UnsynchedFileIo {
	public static void main(String[] args) {
		DataFile dd = new DataFile();
		new ThreadFileIO( "t0", dd);
		new ThreadFileIO( "t1", dd);
		new ThreadFileIO( "t2", dd);
		new ThreadFileIO( "t3", dd);
		new ThreadFileIO( "t4", dd);
	}	
}

 

分享到:
评论

相关推荐

    swt线程冲突与解决

    ### SWT线程冲突与解决 在使用SWT(Standard Widget Toolkit)进行图形界面开发时,开发者往往会遇到一个常见的问题——线程冲突。由于SWT组件的设计原则是基于单线程模型,即所有的UI操作必须在UI主线程中执行,...

    线程同步机制解决多线程资源访问冲突

    2. **自动重置事件**:与人工重置事件不同,当事件被触发后,只唤醒一个等待的线程,然后自动恢复到未设置状态。这样可以确保每次只有一个线程能通过事件并继续执行,减少了资源冲突的可能性。 在实际应用中,我们...

    多线程程序避免冲突的3条简单规则

    3. 避免静态变量:静态变量是类级别的共享,容易引起线程冲突。如果必须使用,考虑使用`java.lang.ThreadLocal`,它为每个线程提供单独的变量副本。 第二条规则:使用线程安全的数据结构 Java提供了一些内置的线程...

    线程冲突 – Thread interference

    这种通信方式非常高效,但存在两个问题:线程冲突(thread interference) , 内存一致性错误(memory consistensy errors)。  解决这两种问题的方法是 线程同步(thread synchronization)。在介绍线程同步之前...

    Delphi多线程的安全问题分析及解决

    1. **共享资源的访问冲突**:当多个线程尝试同时访问同一份资源(如全局变量、共享对象等)时,如果没有适当的同步措施,可能会导致数据不一致或者程序崩溃等问题。 2. **线程中断处理不当**:在某些情况下,如果...

    Android项目设计与开发:UI线程冲突.ppt

    嵌入式Android项目设计与开发 第七章 多线程 ——(2)UI线程冲突 多线程 即使Android可以使用线程, 但规定不能使用子线程修改主线程的内容。 多线程 可以考虑在子线程中使用runOnUiThread重新载入UI线程,并干预...

    多线程之间的线程通信

    互斥则是为了防止多个线程同时访问共享资源,从而导致数据冲突。 常见的线程通信机制包括: 1. **信号量(Semaphore)**:用于控制对共享资源的访问,当资源可用时,信号量值会减一,当资源不足时,线程会被阻塞,...

    mysql是线程不安全的,mysql不是线程安全的,多线程共用同一个mysql连接是会崩溃的.所以同样QT的QSqlDatabase也是线程不安全的,QS会崩溃

    mysql是线程不安全的,mysql不是线程安全的,多线程共用同一个mysql连接是会崩溃的 QT的QSqlDatabase是基于mysql的,所以一样是线程不安全的 现讲明mysql为什么是线程不安全的,以及在多线程环境下如何使用mysql,...

    vc++中的线程锁(线程锁保持线程同步)

    线程同步是多线程编程中的一个核心问题,它涉及到多个线程之间协调执行的机制,以防止在共享数据上的冲突。当多个线程试图同时修改同一份数据时,可能会导致数据的不一致性和错误。线程锁就是用来解决这个问题的一种...

    易语言线程暂停与继续

    - 在多线程协作中,暂停线程可以实现同步,防止数据冲突。 了解了这些基本概念后,你可以通过“线程暂停与继续”源码进一步学习易语言中线程操作的实践方法。这份源码可能包含了创建线程、挂起线程、恢复线程、...

    多线程操作串口示例(带modbus

    在实际应用中,多线程串口操作需要注意线程安全问题,例如防止多个线程同时访问同一串口资源导致的数据冲突。同步机制如锁(Lock)、信号量(Semaphore)或条件变量(Condition)可以用来控制对串口资源的访问。此外...

    C#的多线程示例;几个多线程之间的互斥,同步;WPF主界面INVOKE

    在编程领域,多线程是实现并发执行任务的关键技术,特别是在UI应用如Windows Presentation Foundation (WPF) 中,多线程能有效提升程序的响应性和性能。本文将深入探讨C#中的多线程机制,包括线程互斥与同步,以及...

    易语言线程返回数据的方法

    互斥量则用于保护数据,防止多线程并发访问时出现冲突。 四、线程返回数据的方法 1. **使用全局变量**:线程执行完毕后,可以修改全局变量,然后由主线程或其他线程读取。这种方式简单,但不适用于复杂的同步需求。...

    linux下解决opencv多线程显示图像失败的问题

    linux下解决opencv多线程显示图像失败的问题。主要就是用过一个单独的线程来显示所有图像 代码解析:https://blog.csdn.net/qq_39638989/article/details/117675371?spm=1001.2014.3001.5501

    C#多线程List的非线程安全性

    2. 指针冲突:如果两个线程同时尝试扩容,可能会导致两个线程各自创建了一个新数组,然后都试图将旧数组的数据复制过来,最终导致数据混乱。 3. 内存泄漏:如果线程A完成了扩容,而线程B还在操作旧数组,那么旧数组...

    线程及线程应用总结

    2. **线程同步与通信** - 线程同步:防止多个线程同时访问共享资源,防止数据不一致,例如`synchronized`关键字。 - 等待/通知机制:`wait()`, `notify()`, `notifyAll()`用于线程间的通信,确保线程按特定顺序...

    C#多线程消息处理例子

    为了保证UI的响应性,后台线程不能直接修改UI元素,因为这可能导致线程冲突。为了解决这个问题,C#引入了消息队列和委托机制。消息队列用于存储待处理的消息,而委托则作为方法的引用,允许异步调用。 在这个例子中...

    Delphi多线程详解_delphi_delphi多线程_多线程_

    2. 互斥量(Mutex):一次只允许一个线程访问资源,防止并发冲突。 3. 信号量(Semaphore):控制对有限资源的访问数量。 4. 条件变量(Condition):线程等待特定条件满足后才能继续执行。 四、线程优先级 Delphi...

    .NET多线程实例

    "命名空间"在多线程编程中起到组织和封装代码的作用,确保不同线程间的代码不发生冲突。正确地使用命名空间能提高代码的可读性和可维护性。 "多态和类的继承"在多线程环境下,可以实现更灵活的代码设计。子类可以...

Global site tag (gtag.js) - Google Analytics