`
longhua2003
  • 浏览: 13885 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Java多线程的交替执行

    博客分类:
  • Java
阅读更多
   读完Think In Java的多线程,深有感悟,花了1个小时,写了一个多线程交替执行程序,大家可以参考,如有好的意见,请提出,谢谢!
package com.thread;

public class ThreadTest implements Runnable {


public void run() {
int j = 0;
while (true) {

try {
synchronized (this) {
if (j == 5) {
j = 0;
Tmp.getA().setOnoff(true);
Tmp.getA().Notify();
wait();
}
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("XX+++"+j);
j++;
}
}



public synchronized void Notify() {
notify();
}

public static void main(String[] args) {

ThreadA A = new ThreadA();
Thread testA = new Thread(A);
testA.start();

ThreadTest B = new ThreadTest();
Thread testB = new Thread(B);
testB.start();

Tmp tmp = new Tmp();
tmp.setB(B);
tmp.setA(A);

}

}

class Tmp {
private static ThreadTest B;
private static ThreadA A;

public static ThreadA getA() {
return A;
}

public static void setA(ThreadA a) {
A = a;
}

public static ThreadTest getB() {
return B;
}

public static void setB(ThreadTest b) {
B = b;
}
}

class ThreadA implements Runnable {

boolean Onoff = false;

public boolean setOnoff(boolean LnKai) {
return Onoff = LnKai;
}

public synchronized void Notify() {
notify();
}


public void run() {
int j = 0;
while (true) {

while (Onoff) {

try {
synchronized (this) {
if (j == 5) {
j=0;
Onoff = false;
Tmp.getB().Notify();
wait();
}
Thread.sleep(100);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("YY---"+j);
j++;

}
}

}
}

结果:
XX+++0
XX+++1
XX+++2
XX+++3
XX+++4
YY---0
YY---1
YY---2
YY---3
YY---4
XX+++0
XX+++1
XX+++2
XX+++3
XX+++4
YY---0
YY---1
YY---2
YY---3
YY---4
XX+++0
XX+++1
XX+++2
XX+++3
XX+++4
YY---0
YY---1
YY---2
YY---3
YY---4
分享到:
评论

相关推荐

    JAVA线程高级-线程按序交替执行

    在Java编程中,多线程是并发编程的重要组成部分,它允许程序同时执行多个任务,从而提高了系统的效率和响应性。然而,在某些场景下,我们可能需要控制线程的执行顺序,确保它们按照特定的顺序交替运行,这在并发编程...

    java多线程源码,仅供参考

    Java多线程是Java编程中的核心概念,尤其在并发编程领域,它的重要性不言而喻。这个名为"java多线程源码,仅供参考"的压缩包文件,显然是为了帮助学习者深入理解Java多线程的运行机制。其中的示例程序"BounceThread...

    Java多线程实例图形版

    总结起来,"Java多线程实例图形版"是一个结合理论与实践的教学资源,通过“哲学家就餐问题”这一经典案例,帮助开发者理解多线程的基本概念、并发问题以及解决策略。通过学习这个实例,不仅可以掌握Java多线程编程的...

    我总结的Java多线程程序设计

    2. **并发执行**:多线程的执行在逻辑上表现为同时进行,即使在单CPU系统中,操作系统会通过时间片轮转的方式让各线程交替执行,给人一种并发的错觉。 3. **线程调度**:操作系统负责线程的调度,决定哪个线程在...

    java多线程每个线程挨着打印ABC的4种实现方式

    java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...

    两个线程交替执行

    多线程编程是指在一个程序中同时执行多个线程,以提高程序的效率和响应速度。在 Java 中,线程可以通过 Thread 类或 Runnable 接口来创建。然而,在多线程编程中,线程之间的同步是一个非常重要的问题。本文将通过一...

    Java多线程程序设计-JSP教程,Java技巧及代码

    在单CPU系统中,线程交替执行,但在用户看来,它们似乎是并行的。多线程编程需要处理的主要问题包括线程调度、同步和通信,例如使用`synchronized`关键字来确保线程安全,或者使用`wait()`, `notify()`和`notifyAll...

    java 多线程制作动画

    总的来说,Java多线程技术在制作动画时起着至关重要的作用,它能帮助我们实现动态、流畅的视觉效果。通过巧妙地运用线程同步、定时器以及图形绘制API,可以构建出复杂且引人入胜的动画应用程序。在实际项目中,还...

    Java多线程原理.pdf

    Java 多线程原理 Java 多线程原理是一种基于 Java 语言的多线程编程技术,旨在提高程序的执行效率和响应速度。该技术可以使程序同时执行多个任务,从而提高系统的整体性能。 多线程编程的重要概念 1. 进程...

    Java多线程之基础篇(一).docx

    Java多线程是Java语言中的一个重要特性,它允许程序同时执行多个不同的任务,从而提高程序的效率和响应性。在操作系统层面,实现并发最常见的方式是通过进程和线程。进程是具有独立内存空间的执行单元,而线程是进程...

    JAVA多线程编程详解-详细操作例子(转自CSDN)

    Java多线程编程是Java开发中的重要组成部分,它允许程序同时执行多个任务,提升程序的效率和响应性。本文将详细解析Java中实现多线程的两种主要方式,并讨论线程的基本概念和内存模型。 首先,理解多线程的概念至关...

    JAVA多线程PPT教案学习.pptx

    Java多线程是Java编程中的重要概念,它允许在单个程序中同时执行多个任务,提高了应用程序的效率和响应速度。在Java中,线程被看作是CPU时间片的执行单元,它们共享同一个地址空间,能高效地交换数据。 线程具有...

    Java多线程的小例子——吃包子

    这个名为"Java多线程的小例子——吃包子"的示例,旨在帮助开发者直观地理解多线程的工作原理。下面我们将深入探讨该示例所涉及的核心知识点。 首先,多线程通常涉及到以下几个关键概念: 1. **线程(Thread)**:...

    java多线程编程大总结

    Java多线程编程是Java语言中的一个重要组成部分,它允许程序在单个进程内同时执行多个线程,从而实现多任务处理。在Java 5版本之前,Java对多线程的支持相对有限,编写复杂的多线程程序具有一定的挑战性。然而,从...

    Java多线程通信:交替打印ABAB实例

    Java多线程通信是并发编程中的重要概念,它允许不同线程之间进行协作,以便在共享资源时有序地执行任务。在这个场景下,我们关注的是如何实现两个线程交替打印"A"和"B",形成"ABABAB"这样的序列。 在给出的示例中,...

    多线程 打印1-99,100-199

    ### 实验知识点解析 #### 一、ThreadMock 类的设计与实现 ...通过以上的分析和实现,我们可以清楚地理解如何利用 Java 的多线程机制以及 `Runnable` 接口来设计和实现一个简单的多线程应用程序。

    多线程并发执行任务

    多线程并发执行意味着多个线程在同一时间段内交替运行,提升了程序的执行效率。 在Java中,创建线程有两种主要方式: 1. 继承`Thread`类:创建一个新的类,该类继承自`java.lang.Thread`,然后重写`run()`方法。...

    Java多线程初学者指南

    Java多线程是Java编程中不可或缺的一部分,它允许程序同时执行多个任务,从而提升系统效率。对于初学者来说,理解并掌握多线程的概念和使用是至关重要的。 首先,线程是程序执行的最小单位,它在操作系统内核的支持...

    java多线程.pdf

    Java多线程技术是Java编程语言中重要的特性之一,它允许同时执行多个线程,能够提高程序的效率和性能。在Java中,线程可以由两种方式实现:继承Thread类和实现Runnable接口。 继承Thread类是实现线程的最简单方式,...

    Java多线程编程详解

    本文将深入讲解Java多线程编程的基础知识。 首先,理解多线程的概念至关重要。多线程是指在一个进程中可以同时运行多个独立的执行单元,即线程。线程是轻量级进程,它们共享同一进程的内存空间,但拥有各自的程序...

Global site tag (gtag.js) - Google Analytics