package Bean;
public class ThreadTest {
public static void main(String[] args){
//int i = 200;
Thread2 trd2 = new Thread2();
//trd2.setDaemon(true);
try{
new Thread(trd2).start();
Thread.sleep(1);
trd2.str = new String("method");
new Thread(trd2).start();
//new Thread(trd2).start();
}
catch(Exception e){
System.out.println(e.getMessage());
}
/*while(true)
{
System.out.println("main"+Thread.currentThread().getName());
}*/
}
}
class Print{
public void printRun(int saleNum)
{
if(saleNum > 0)
System.out.println("Print run!" + saleNum);
}
}
class Thread2 implements Runnable// extends Thread
{
int saleNum = 100;
Print pt = new Print();
String str = new String("");
public void run()
{
if(str.equals("method"))
{
while(true)
{
sale();
}
}
else
{
while(true)
{
synchronized(this)
{
if(saleNum > 0)
{
//System.out.println("Print run!" + saleNum--);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//pt.printRun(saleNum--);
System.out.println(Thread.currentThread().getName()+" is saling"+ saleNum--);
}
}
}
}
}
public synchronized void sale()
{
if(saleNum > 0)
{
//System.out.println("Print run!" + saleNum--);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//pt.printRun(saleNum--);
System.out.println(Thread.currentThread().getName()+" is saling method"+ saleNum--);
}
}
}
分享到:
相关推荐
1.使用三种VC的多线程同步方法编写一个多线程的程序(要求在屏幕上先显示Hello,再显示World)。...1)基于全局变量的多线程同步程序; 2)基于事件的多线程同步程序; 3)基于临界区的多线程同步程序。
在本实验中,我们将探讨如何使用C++在Windows操作系统中编写多线程同步程序。首先,我们要理解Windows程序设计的基本思想,尤其是基于消息的程序设计方法。在Windows编程中,程序通常通过处理由操作系统发送的消息来...
该程序是多线程程序的同步程序,主要应用了Section的相关函数,以跑通,线程1,2交替运行
本文将深入探讨在.NET框架中用于多线程同步的三个主要工具:Monitor、Mutex和EventWaitHandle,并结合提供的"五个多线程同步应用小程序",解释它们的应用场景和使用方法。 首先,我们来看Monitor类。Monitor是.NET...
Java多线程同步是指在Java语言中,如何使用synchronized关键字和其他同步机制来确保多线程程序的正确执行。在Java语言中,synchronized关键字用于对方法或者代码块进行同步,但是仅仅使用synchronized关键字还不能...
本实例程序“VC多线程同步实例程序”着重探讨了如何在Visual C++中创建线程以及实现线程间的同步。下面将详细解释这些概念和技术。 首先,我们需要理解什么是线程。线程是操作系统调度的基本单位,一个进程中可以...
总之,理解 Delphi 的多线程和线程同步是编写高效、健壮的并发程序的关键。通过学习和实践这两个示例,你可以提升在实际项目中解决并发问题的能力,更好地应对高并发场景下的编程挑战。记得在编写多线程代码时,始终...
本篇文章将深入探讨三种在C++中实现多线程同步的方法:事件对象、关键代码段和互斥对象。 首先,我们来看**事件对象**。事件对象是一种信号机制,用于线程间通信和同步。在Windows API中,CreateEvent函数创建一个...
本示例“简单实现多线程同步示例(模拟购票系统)”旨在通过一个具体的实例,帮助开发者理解如何在Java中创建并管理多线程以及如何实现线程同步,确保数据的一致性和正确性。 首先,我们要明确多线程的基本概念。在...
总的来说,VS2017实现的TCP socket多线程同步程序是一个典型的网络编程示例,它结合了TCP通信、套接字编程、多线程技术和同步机制。这个程序对于学习C++网络编程和理解并发处理具有很高的参考价值。
在C#中实现多线程同步并发操作,不仅可以大幅提升应用程序的性能,还能增强其健壮性和可维护性。通过合理利用C#提供的线程同步机制,如`Monitor`类,以及理解并避免常见的多线程陷阱,如死锁和竞态条件,开发者可以...
【MFC多线程同步类的使用】 在MFC(Microsoft Foundation Classes)中,多线程编程是一项重要的技术,尤其在开发复杂的、并发执行的任务时。多线程允许程序同时执行多个任务,提升效率和响应速度。然而,线程间的...
操作系统中的多线程同步是一个关键概念,特别是在并发编程中,它涉及到如何协调多个线程以避免数据不一致性和竞态条件。在这个实验中,我们关注的是C++编程语言中的实现,以及操作系统如何处理线程的优先级。 首先...
本示例着重讲解了VC++中的多线程同步,这是多线程编程中确保数据安全和正确性的重要概念。我们将深入探讨临界区、互斥量、事件和信号量这四种多线程同步机制。 1. **临界区(Critical Section)**:临界区是多线程...
多线程同步则是为了协调多个线程的执行顺序和访问共享资源的方式,以确保程序的正确性。 临界区的实现通常依赖于操作系统提供的原语,如Windows下的`EnterCriticalSection`和`LeaveCriticalSection`,或者POSIX标准...
多线程聊天程序是一种在计算机编程中实现的通信应用程序,它允许多个用户同时参与聊天,通过并发处理来提高系统的响应速度和效率。在多线程环境下,每个用户交互或者消息发送都可以在一个独立的线程中运行,使得聊天...
在这个“一个多线程同步读写的小程序”中,我们看到开发者尝试通过创建读线程和写线程来同时进行数据的读取和写入,以优化程序的执行流程。 首先,让我们深入理解多线程的概念。线程是操作系统分配处理器时间的基本...
因此,多线程同步成为确保程序正确性和避免这些问题的关键。 MFC通过提供一些特定的类来支持多线程同步,如CWinThread、CSingleLock、CMutex、CCriticalSection、CEvent等。这些类都是Windows API的封装,方便了C++...
开发者可以查看源码,了解如何在实际项目中应用多线程技术,如错误处理、网络通信、线程同步等方面。 在“Leo2005源码及程序”这个文件中,我们可以期待找到这个多线程下载程序的完整源代码和可执行文件。通过阅读...
总结,通过在PowerBuilder中实现多线程同步查询数据,开发者可以提升应用程序的并发能力和性能,尤其是在处理大规模数据和多个数据库连接的场景下。理解并熟练运用线程同步技术,是提升PowerBuilder应用程序质量的...