- 浏览: 611190 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
月光杯:
问题解决了吗?
Exceptions in HDFS -
iostreamin:
神,好厉害,这是我找到的唯一可以ac的Java代码,厉害。
[leetcode] word ladder II -
standalone:
One answer I agree with:引用Whene ...
How many string objects are created? -
DiaoCow:
不错!,一开始对这些确实容易犯迷糊
erlang中的冒号 分号 和 句号 -
standalone:
Exception in thread "main& ...
one java interview question
There
might be times when you need to temporarily stop a thread from
processing and then resume processing, such as when you want to let
another thread use the current resource. You can achieve this objective
by defining your own suspend and resume methods, as shown in the
following example. This example defines a MyThread
class. The MyThread
class defines three methods: the run()
method, the suspendThread()
method, and the resumeThread()
method. In addition, the MyThread
class declares the instance variable suspended
, whose value is used to indicate whether or not the thread is suspended. The run()
method contains a for
loop
that displays the value of the counter variable. Each time the counter
variable is displayed, the thread pauses briefly. It then enters a
synchronized statement to determine whether the value of the suspended
instance variable is true. If so, the wait()
method is called, causing the thread to be suspended until the notify()
method is called. The suspendThread()
method simply assigns true to the suspended
instance variable. The resumeThread()
method assigns false to the suspended
instance variable and then calls the notify()
method. This causes the thread that is suspended to resume processing. The main()
method of the Demo
class declares an instance of MyThread
and then pauses for about a second before calling the suspendThread()
method and displaying an appropriate message on the screen. It then pauses for about another second before calling the resumeThread()
method and again displaying an appropriate message on the screen. The
thread continues to display the value of the counter variable until the
thread is suspended. The thread continues to display the value of the
counter variable once the thread resumes processing. Here’s what is
displayed when you run this program: Thread: 0
Multithreading in Java - Suspending and Resuming Threads
(Page 10 of 10 )
Thread: 1
Thread: 2
Thread: 3
Thread: 4
Thread: Suspended
Thread: Resume
Thread: 5
Thread: 6
Thread: 7
Thread: 8
Thread: 9
Thread exiting.
class MyThread implements Runnable {
String name;
Thread t;
boolean suspended;
MyThread() {
t = new Thread(this, "Thread");
suspended = false ;
t.start();
}
public void run() {
try {
for (int i = 0; i < 10; i++) {
System.out.println("Thread: " + i );
Thread.sleep(200);
synchronized (this) {
while (suspended) {
wait();
}
}
}
} catch (InterruptedException e ) {
System.out.println("Thread: interrupted.");
}
System.out.println("Thread exiting.");
}
void suspendThread() {
suspended = true;
}
synchronized void resumeThread() {
suspended = false;
notify();
}
}
class Demo {
public static void main (String args [] ) {
MyThread t1 = new MyThread();
try{
Thread.sleep(1000);
t1.suspendThread();
System.out.println("Thread: Suspended");
Thread.sleep(1000);
t1.resumeThread();
System.out.println("Thread: Resume");
} catch ( InterruptedException e) {
}
try {
t1.t.join();
} catch ( InterruptedException e) {
System.out.println (
"Main Thread: interrupted");
}
}
}
发表评论
-
ssl 与 java 实例
2014-01-27 10:10 844http://www.iteye.com/topic/1125 ... -
Java NIO
2014-01-10 21:28 744看了这个java nio的教程,明白了什么是Selector. ... -
再谈Java的wait(), sleep(), notify()和notifyAll()
2013-07-25 10:59 1943一段时间不用java,这些概念就全混淆了,有必要彻底澄清一下, ... -
Why singleton is anti-pattern?
2013-07-03 10:12 912OO Test Other reasons? -
How to generate the serialVersionUID when you implement Serializable interface,j
2013-07-01 10:52 987http://docs.oracle.com/javase/6 ... -
Java Override的两个问题
2013-06-01 11:40 9851: 如果子类中的方法的参数是父类的方法的子类型,那么算不算o ... -
Java常用类API统计
2013-06-01 11:35 0String charAt(int) compareTo( ... -
How many string objects are created?
2013-06-01 10:18 1356This is a very common java inte ... -
使用Java的DelayQueue容易碰到的一个坑
2013-05-27 17:32 6784今天不忙,学习一下java.util.concurrent.D ... -
[leetcode] Balanced Binary Tree
2013-04-28 14:08 1615Check if a binary tree is balan ... -
[leetcode] find median of two sorted arrays
2013-04-26 10:55 1501http://leetcode.com/onlinejudge ... -
[leetcode] word ladder
2013-04-25 15:05 2307Q: Given two words (start and ... -
[leetcode] word ladder II
2013-04-15 07:35 12088http://leetcode.com/onlinejudge ... -
[leetcode] Count and Say
2013-04-12 14:05 2280http://leetcode.com/onlinejudge ... -
Date/Time处理函数总结 [To Do]
2013-04-12 10:46 706几种我所用到的用来处理日期,时间的函数总结。 Perl 1 ... -
[leetcode] Palindrome Partition
2013-04-12 10:25 1344http://leetcode.com/onlinejudge ... -
[leetcode] Palindrome Partitioning II
2013-04-11 16:45 1550http://leetcode.com/onlinejudge ... -
Profiling your Java code using Spring
2013-03-05 15:02 730Quite good article!!! http://w ... -
Java的Generics的几点限制
2012-12-28 15:00 4796参见 http://docs.oracle.com/ ... -
Overriding Method Using Parameter That is a Subclass?
2012-12-27 22:14 929参见 http://www.coderanch.com/t/3 ...
相关推荐
Multithreading in Java Chapter 9. Input/Output, Serialization and Cloning Chapter 10. Generics, java.util and other API Chapter 11. Network Programming Chapter 12. Applets Chapter 13. Event Handling ...
其中,"multithreading applications in Win32.pdf"可能是一个关于Windows平台下多线程应用的补充材料,可能出自另一本书或文章,但与《Thinking in Java》的主题相关。多线程是Java编程中的一个重要部分,它允许...
- **Concurrency:** Explore concurrency concepts and multithreading in Java. #### Conclusion The 1Z0-811 exam is a significant step towards achieving Oracle Java SE certification. By following a ...
Java多线程 多线程是Java的一项功能,它允许并发执行程序的两个或更多部分,以最大程度地利用CPU。 这种程序的每个部分都称为线程。 因此,线程是进程中的轻量级进程。 可以使用两种机制来创建线程: 扩展Thread类...
In 1999, with his wife Luda and two daughters, he emigrated to the USA and has been living in Colorado ever since, working as a Java programmer. In his free time, Nick likes to write and hike in the ...
实践中的Java并发和多线程 这是发行的的代码存储库。 它包含从头到尾完成视频课程所需的所有支持项目文件。 关于视频课程 多核处理器无处不在-从超级计算机到随身携带的移动设备。 这就是为什么现代开发人员必须知道...
It also discusses about exception handling, multithreading and java libraries. Further, it explains how to interact with client side applications like applets and handling events. The last section ...
10. Describe the difference between '==' and `.equals()` in Java.Answer: In Java, '==' is a comparison operator used to compare primitive types, like int or char, and checks if both sides refer to the...
This book was written with one goal in mind: to provide Java programmers with the expertise needed to build efficient, scalable Java code. The author shares his experience in server-side performance ...
If Java is the heavy metal of computer programming, then Python is the jazz that opens doors of freedom in software development. Both Java and Python are object-oriented programming languages. Both ...
Chapter 7 Exceptions, Logging, Assertions, and Debugging(新增批注共38条) Chapter 8 Generic Programming(新增批注共22条) Chapter 9 Collections(新增批注共55条) Chapter 10 Multithreading(新增批注共...
Carver和Kuo-Chung Tai撰写,由John Wiley & Sons, Inc.出版,是一本深入探讨多线程编程的专著,尤其聚焦于Java和C++(包括Pthreads和Win32)语言环境下的多线程程序设计、测试与调试。本书不仅适合初学者作为入门...
This chapter introduces multithreading concepts and techniques in Java, including thread creation, synchronization, and inter-thread communication. Multithreading is particularly useful for improving...
9. **多线程(Multithreading)**:Java支持多线程编程,书中会讲解线程的创建、同步和通信,以及线程池的使用。 10. **输入/输出流(I/O Stream)**:介绍如何在Java中进行文件读写,网络通信以及其他类型的输入...
3 FUNDAMENTAL PROGRAMMING STRUCTURES IN JAVA 4 OBJECTS AND CLASSES 5 INHERITANCE 6 INTERFACES AND INNER CLASSES 7 GRAPHICS PROGRAMMING 8 EVENT HANDLING 9 USER INTERFACE COMPONENTS WITH SWING 10 ...
Core Java offers a total immersion approach for CC++ programmer wanting to learn...Chapter 10 Multithreading Chapter 11 Exception Handling Chapter 12 Applet Chapter 13 Managing Input/Output Files in Java
6. ** 示例代码 **:在`producer_consumer_using_multithreading_in_java-master`这个项目中,应该包含了一个完整的示例,演示了如何用Java实现生产者消费者模型。源代码可能包括一个`Producer`类和一个`Consumer`类...
Chapter 7 Exceptions, Logging, Assertions, and Debugging(新增批注共38条) Chapter 8 Generic Programming(新增批注共22条) Chapter 9 Collections(新增批注共55条) Chapter 10 Multithreading(新增批注共...