`
de6566088
  • 浏览: 31630 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

处理多线程同步问题

阅读更多
public class BusinessFor {
	private boolean bShouldSub = true;

	public synchronized void sub(int j) {
		//如果我不能执行,我将被设置为等待
		while (!bShouldSub) { 
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		
		for (int i = 1; i <= 10; i++) {
			System.out.println("sub: " + i + ",loop: " + j);
		}
		
		bShouldSub = false;
		this.notify();//唤醒
	}

	public synchronized void zhu(int j) {
		while (bShouldSub) {
			try {
				this.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		
		for (int i = 1; i <= 100; i++) {
			System.out.println("main: " + i + ",loop: " + j);
		}
		
		bShouldSub = true;
		this.notify();//唤醒
	}

}

   这是一种多线程设计的一种思想,将线程同步的信息放在可syn同步的类中 。

   以下是启动线程测试

public class ThreadTongBu {
	
	public static void main(String[] args) {
		final BusinessFor businessFor = new BusinessFor();
		
		new Thread(new Runnable() {
			public void run() {
				for(int i=1;i<=50;i++){
					businessFor.sub(i);
				}
			}
		}).start();
		
		for(int i=1;i<=50;i++){
			businessFor.zhu(i);
		}
		
	}
	
}

 

 

 

分享到:
评论

相关推荐

    MFC中的多线程同步

    通过深入研究和实践"MfcMutexes"程序,你可以更好地理解如何在MFC环境中处理多线程同步问题,以及如何预防和解决潜在的并发问题。这不仅有助于提升你的编程技能,还能让你在面对复杂的多线程应用时更加游刃有余。

    多线程同步利用ccriticalsection

    在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种高效的方式来处理多线程同步问题,特别是通过使用`CCriticalSection`类。这个类是Windows API中的`CRITICAL_SECTION`结构的封装,用于实现...

    Delphi多线程同步的例子

    本文将深入探讨Delphi中的多线程和线程同步,并以"SortThreads"和"delphi-thread-gui"这两个示例项目为例,讲解如何在实践中应用这些概念。 1. **多线程**:多线程允许应用程序同时执行多个独立的任务,提高程序的...

    简单实现多线程同步示例(模拟购票系统)

    在编程领域,多线程是实现并发执行任务...总之,多线程同步是解决并发问题的关键,通过学习和实践这个简单的购票系统示例,开发者可以更好地理解和掌握Java中的线程同步机制,为解决实际项目中的并发问题打下坚实基础。

    C#实现多线程同步并发操作

    本文将深入探讨如何在C#中实现多线程同步并发操作,这不仅对于提高软件性能至关重要,也是高级程序员必须掌握的核心技能之一。 ### C#中的多线程同步并发操作 多线程编程可以极大地提高CPU的利用率,特别是在处理I...

    MFC多线程同步类的使用

    【MFC多线程同步类的使用】 在MFC(Microsoft Foundation Classes)中,多线程编程是一项重要的技术,尤其在开发复杂的、并发执行的任务时。多线程允许程序同时执行多个任务,提升效率和响应速度。然而,线程间的...

    操作系统实验多线程同步(含C++源代码)

    操作系统中的多线程同步是一个关键概念,特别是在并发编程中,它涉及到如何协调多个线程以避免数据不一致性和竞态条件。在这个实验中,我们关注的是C++编程语言中的实现,以及操作系统如何处理线程的优先级。 首先...

    JNI 多线程同步机制的源码实现

    2. **多线程同步问题** 当多个Java线程调用同一个本地方法,它们可能同时访问和修改共享资源,这就需要同步控制。在Java中,我们可以使用`synchronized`关键字、`java.util.concurrent`包中的工具类等来实现同步。...

    多线程同步大量数据转录的多线程和同步

    队列是一种先进先出(FIFO)的数据结构,非常适合用于处理多线程环境中的任务调度。写入线程将数据添加到队列的尾部,而读取线程则从队列的头部取出数据进行处理。这种方式确保了数据处理的顺序性,同时也避免了线程...

    delphi中线程同步问题

    本文将深入探讨 `Synchronize` 的工作原理,并提出解决 DLL/ActiveForm 中线程同步问题的策略。 `Synchronize` 的实现基于事件和线程同步原语。当一个非主线程调用 `Synchronize` 时,它会创建一个同步记录结构,...

    多线程的同步机制 VC++

    VC++中提供了多种同步机制来处理多线程间的同步问题,其中Event是常用的一种。 Event,即事件对象,它有手动重置和自动重置两种类型。手动重置事件一旦被设置为激发状态,会唤醒所有等待的线程,并保持激发状态,...

    多线程同步Demo

    在实际编程中,多线程同步是解决并发问题的关键。合理地使用上述同步机制,可以避免数据竞争、死锁等问题,保证程序的正确性和稳定性。例如,在一个文件读写操作中,可以使用临界区或互斥量来保证同一时间只有一个...

    VC++MFC多线程同步实例

    多线程同步是保证多个线程安全交互的关键技术,避免了数据竞争和死锁等问题。本实例主要探讨了四种主要的同步机制:信号量、互斥锁、事件以及临界资源。 首先,信号量(Semaphore)是一种计数型同步对象,用于控制...

    多线程的批量线程同步解决方案

    在多线程环境中,股票匹配可能涉及实时价格更新、订单处理等,需要高效且正确的线程同步。这个测试可能涵盖各种同步策略,如使用`synchronized`关键字保护共享数据,或者使用`BlockingQueue`来实现线程间的通信和...

    解决多线程编程中的同步互斥问题

    在Windows平台下,解决多线程同步互斥问题的一种常用方法是使用关键段(Critical Section)。关键段是一种轻量级的同步对象,用于保护共享资源免受并发访问的影响。一旦一个线程获得了对某个关键段的所有权,其他...

    vc 多线程实例同步,异步

    总的来说,理解和掌握VC++中的多线程同步和异步是提升程序性能和稳定性的重要手段。开发者需要深入理解各种线程同步机制,合理运用异步操作,确保代码的正确性和可维护性。在实际项目中,应根据需求选择合适的线程...

    c++实现多线程同步

    通过分析和学习这个示例,你可以更好地理解如何在Windows环境下用C++实现多线程同步。 总之,C++的多线程功能使得开发者能够充分利用现代硬件的并行处理能力,而信号量作为一种有效的同步工具,可以防止数据竞争,...

    QT 多线程同步QSemaphore

    QT框架中的多线程同步是实现高效并发编程的关键技术,其中`QSemaphore`是一个重要的工具。`QSemaphore`是Qt的并发类库中的一员,它主要用于控制对共享资源的访问,实现线程间的同步和互斥。理解并熟练运用`...

    某电信项目多线程同步数据实例

    在IT行业中,尤其是在大型系统开发中,多线程同步数据是一个关键的技术环节,尤其是在处理大量实时数据的场景,如电信项目。"某电信项目多线程同步数据实例"的标题揭示了一个具体的应用案例,它表明在该电信项目中,...

    支持移动同步和多线程同步的软件

    "支持移动同步和多线程同步的软件"是一个针对这一需求设计的高效工具,它旨在优化文件和文件夹的同步与拷贝过程,提高效率并确保数据的一致性。 首先,移动同步是指软件能够适应不同设备间的同步需求,比如在电脑和...

Global site tag (gtag.js) - Google Analytics