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

Java 同步信号使用

阅读更多
package com.hp.concurrency;

public class SignalTest {
	public static final Object lock = new Object();

	public static void main(String[] args) {
		
		new TestThread().start();

		testRun();
	}

	public static void testRun() {
		
		try {
			Thread.sleep(200);
		} catch (InterruptedException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		synchronized (SignalTest.lock) {
				try {
					System.out.println("Main got SignalTest.lock ");
					Thread.sleep(200);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				SignalTest.lock.notify();
				
		
		}
		
		System.out.println("testRun over");
	}

}

class TestThread extends Thread {

	public void run() {
		synchronized (SignalTest.lock) {
			System.out.println("TestThread got SignalTest.lock ");
			try {
				Thread.sleep(4000);
				//SignalTest.lock.wait();
				SignalTest.lock.wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		System.out.println("run over");
	}
}



分享到:
评论

相关推荐

    java 线程同步 信号量控制同步

    信号量机制是 Java 中的一种线程同步机制。信号量是一个整数值,表示当前可用的资源数量。线程可以通过等待信号量来获取资源访问权限。信号量机制可以用于解决生产者-消费者问题、哲学家就餐问题等。 Java 中的 ...

    java同步互斥信号量问题

    总结来说,Java同步互斥和信号量是解决多线程环境下资源访问冲突的重要工具。信号量提供了更灵活的控制,可以管理多个许可证,而不仅仅是二进制锁。理解这些概念并正确使用它们对于编写健壮、高效的多线程程序至关...

    深入学习Java同步机制中的底层实现

    Java同步机制是多线程编程中确保数据一致性与正确性的关键。在Java中,主要有两种同步机制:内置的`synchronized`关键字以及基于`java.util.concurrent`包中的高级同步工具类。本文将深入探讨这些机制的底层实现,...

    Java实现进程同步

    本篇文章将深入探讨如何使用Java实现“生产者-消费者”问题的进程同步。 生产者-消费者问题是多线程设计模式中的一个经典案例,它模拟了两个角色——生产者和消费者,共享一个有限的缓冲区。生产者负责生成产品并放...

    java同步(一个网页)

    Java同步是Java编程中一个非常重要的概念,主要涉及到多线程环境下的程序控制。在Java中,当多个线程同时访问共享资源时,如果没有适当的同步机制,可能会导致数据不一致、竞态条件等问题。同步机制确保了在特定时间...

    Java 同步锁 wait notify 学习心得

    ### Java同步锁原理 在Java中,`synchronized`关键字用于实现线程同步,即确保同一时刻只有一个线程可以访问特定的代码块或方法。这种机制通过内部维护一个锁来实现,每个对象都有一个内置锁,这个锁可以被任何拥有...

    Java实现的进程同步与互斥(PV)

    在Java中,我们可以使用`java.util.concurrent`包下的工具类来实现进程同步和互斥。其中,`Semaphore`类可以用来模拟信号量,从而实现PV操作。`Semaphore`维护了一个许可计数,当计数为0时,表示没有可用的资源,...

    Java进程信号量机制的实验程序

    Java进程信号量机制是多线程编程中一种有效的同步工具,它源于操作系统中的同步原语,用于管理和控制对共享资源的访问。在Java中,信号量由`java.util.concurrent.Semaphore`类实现,它提供了两种类型:可重用的二...

    Java资源同步Java资源同步Java资源同步

    ### Java资源同步详解 在Java开发中,资源同步是一个非常重要且常见的问题,尤其是在多线程环境中,合理地管理资源能够有效提升程序的稳定性和效率。根据提供的标题与描述,本次将深入探讨“Java资源同步”的相关...

    使用信号量(Semaphore)实现线程的同步

    在Java中,可以使用`java.util.concurrent.Semaphore`类,其使用方式与Python类似。 信号量是解决线程同步问题的一种高效工具,通过合理的信号量控制,可以有效地避免死锁、饥饿等问题,提高系统资源的利用率。理解...

    使用Java模拟交通信号灯.zip

    在本项目中,“使用Java模拟交通信号灯”是一个典型的编程实践,主要涵盖了计算机科学中的并发处理、模拟与仿真以及软件工程的基本概念。这个毕业设计旨在通过编程实现一个交通信号灯控制系统,来理解和应用Java语言...

    JAVA实现线程间同步与互斥生产者消费者问题

    3. **Semaphore信号量**:Java的`java.util.concurrent.Semaphore`类可以用于限制同时访问某个资源的线程数量,实现线程的同步。在这个场景下,可以设置信号量的许可数量为队列的容量,生产者在添加产品前需要获取一...

    JAVA IO同步,异步

    JAVA IO同步、异步详解 IO 操作是计算机系统中最基本的操作之一,它可以分为同步(Synchronous)和异步(Asynchronous)两种模式。同步IO 是指应用程序在执行IO 操作时,需要等待IO 操作完成后才能继续执行其他操作...

    java线程同步详解

    Java中的线程同步还有其他工具,例如`java.util.concurrent`包中的`Semaphore`、`ReentrantLock`等,它们提供了更高级的同步控制,如信号量控制、公平锁、非公平锁等。 线程同步的主要目的是防止数据竞争(Data ...

    交通信号灯(java实现,内含项目文件 报告文档及jar文件)

    在本项目中,我们主要探讨的是使用Java编程语言实现交通信号灯控制的模拟系统。交通信号灯是城市交通管理中的重要组成部分,通过合理的时序控制,确保道路交通的顺畅与安全。这个Java项目不仅是一个简单的编程作业,...

    java哲学家就餐问题

    总的来说,这个Java程序展示了如何使用多线程和同步技术解决并发问题,这对于学习Java并发编程和理解操作系统原理至关重要。无论是重庆大学的学生还是其他对并发编程感兴趣的开发者,都能从中获益,学习如何避免和...

    java 多线程同步

    在使用`java.util.concurrent`包时,了解并发基础知识是必要的,包括线程的创建、同步、中断和异常处理。线程的创建可以通过Thread类或Runnable接口实现,同步可以通过`synchronized`关键字、Lock接口(如...

    java 同步阻塞并唤醒指定线程

    这时,我们可以利用`java.util.concurrent`包中的`Semaphore`(信号量)、`CyclicBarrier`(循环屏障)或`CountDownLatch`(计数门锁)等工具来更精细地控制线程的同步和唤醒。例如,`Semaphore`可以限制同时访问...

    java同步与互斥资料收集

    首先,Java同步主要指的是通过特定机制(如`synchronized`关键字、`Lock`接口等)来控制多个线程对共享资源的访问,以避免竞态条件。竞态条件是指当两个或更多线程可以同时修改同一变量,且结果取决于它们的执行顺序...

    java同步

    Java同步是Java编程中一个非常重要的概念,它主要用于多线程环境下的资源访问控制和并发安全。在Java中,同步可以防止多个线程同时访问共享资源,从而避免数据不一致性和竞态条件等问题。本文将深入探讨Java同步的...

Global site tag (gtag.js) - Google Analytics