/** * * * @author William * @date Mar 15, 2013 * @version 1.0 */ public class GetStaticVal extends Thread{ String id; public GetStaticVal(String id){ this.id=id; } public void run() { if(id.equals("1")){ for(int i=0;i<100000000;i++){ StaticClass.val=i; //System.out.println(StaticClass.val); } System.out.println(id+"==="+StaticClass.val); }else{ System.out.println(id+"==="+StaticClass.val); } } public static void main(String[] args) { GetStaticVal th1=new GetStaticVal("1"); GetStaticVal th2=new GetStaticVal("2"); GetStaticVal th3=new GetStaticVal("3"); GetStaticVal th4=new GetStaticVal("4"); System.out.println("begin="+StaticClass.val); th1.start(); th1.yield(); //yield是先将自已执行权先暂时转让给别的线程,等别的线程都执行完再接着再执行 // try { // th1.join(); //所以有线程同步后,要待到自已线程执行完再,执行其它线程 // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } th2.start(); th3.start(); th4.start(); System.out.println("End="+StaticClass.val); } }
//Static Class
public class StaticClass { public static int val; }
相关推荐
在Java多线程编程中,理解并正确使用`yield`和`join`方法是至关重要的。这两个方法都属于线程控制策略的一部分,但它们的作用和使用场景有所不同。 首先,我们来详细探讨`Thread.yield()`方法。这个方法的目的是让...
以上就是对Java线程中wait、await、sleep、yield、join用法的总结。这些方法在实际开发中,对于控制多线程运行的时序和协调非常关键。理解这些方法的正确使用方式是掌握Java并发编程的基础。同时,使用时需特别注意...
Java提供了多种线程控制方法,如start()用于启动线程,run()是线程的主要执行体,join()使当前线程等待该线程终止,sleep()使线程暂停执行一段时间,yield()让当前线程暂停,让其他线程有机会运行,synchronized...
- `Thread.yield()`: 让当前线程暂停,让其他相同优先级的线程有机会执行。 此外,`java.util.concurrent`包提供了高级线程管理和同步工具,如`ExecutorService`, `Future`, `Semaphore`, `CyclicBarrier`, `...
Java线程是Java SE(标准版)平台中的核心特性,它允许程序同时执行多个任务,提高了应用程序的效率和响应性。在多核处理器系统中,线程的优势更加明显,因为每个线程可以在不同的处理器上并发运行。本学习教程旨在...
本文将深入探讨Java中的四个关键方法:`sleep()`, `wait()`, `yield()`和`join()`,以及它们各自的特点和区别。 首先,我们来看`sleep()`和`wait()`的区别: 1. **来源不同**:`sleep()`是`Thread`类的方法,它...
- Thread.sleep()使当前线程休眠指定的毫秒数,Thread.yield()则是让当前线程让步,给其他线程运行的机会。 - Thread.dumpStack()打印当前线程的堆栈跟踪,join()方法等待线程终止。 9. **监控和调试** - Thread...
Java提供了丰富的线程控制方法,如`start()`启动线程,`sleep()`使线程暂停一段时间,`join()`让当前线程等待指定线程结束,`yield()`让当前线程让出CPU执行权,以及`interrupt()`中断线程等。 Java还提供了同步...
- **yield()**:让当前线程暂停,让其他线程有机会运行。 - **interrupt()**:中断线程,标记线程的中断状态。 4. **线程同步** - **synchronized关键字**:用于方法或代码块,防止多个线程同时访问共享资源,...
本文将详细解析线程中`sleep()`, `join()`, `yield()`, 和 `wait()` 四个方法的区别。 1. `sleep()` `sleep()` 方法是 `java.lang.Thread` 类的一个静态方法,它允许当前正在执行的线程在指定的毫秒数内暂停执行。...
Java还提供了其他线程控制的工具,比如`Thread.sleep()`用于让线程暂停指定时间,`Thread.yield()`让当前线程让步给其他线程,以及`Thread.join()`等待特定线程结束。另外,线程池(ThreadPool)和Executor框架是...
以上只是部分Java线程编程的核心知识点,`javathread.part104.rar`中可能还会包含更多高级主题,如线程池的配置与优化、线程通信(例如`join()`, `Thread.sleep()`, `yield()`)以及并发工具类的深入探讨。...
本示例“javaThread正确的示例”旨在展示如何正确地创建和管理Java线程,以提高程序的并发性能。下面将详细介绍相关知识点。 1. **线程的创建方式** - **实现Runnable接口**:这是最常见的创建线程的方式,只需...
`Thread.yield()`方法用于暂停当前线程,让其他线程有机会运行;以及`Thread.join()`方法,使当前线程等待另一个线程完成。 总结起来,Java的`Thread`类和相关机制为开发者提供了强大的多线程编程能力。通过实例...
Java多线程编程是开发高并发应用的关键技术之一,其中`Thread.yield()`方法是一个重要的概念,用于线程之间的协作。这个方法允许当前正在执行的线程暂停执行,将其从运行状态变为可执行状态,从而可能让其他线程有...
本资料"java_Thread.rar"提供了一些Java多线程的实践案例,对于深入理解和应用Java多线程技术具有很高的参考价值。 首先,我们要理解线程的基本概念。线程是程序执行的最小单元,每个线程都拥有自己独立的程序...
`Thread.yield()`是Java提供的一个静态方法,它用于让当前正在执行的线程暂停,但不进入阻塞状态,而是让出当前的CPU执行权,使得其他线程有机会运行。需要注意的是,`yield()`并不会像`sleep()`或`join()`那样使...
"高薪程序员面试题精讲系列63之说说sleep()、yield()、join()、wait()的区别" 本资源主要讲解了Java中四个常用的线程控制方法:sleep()、yield()、join()和wait(),它们是Java多线程编程中的重要...
Java提供了丰富的线程控制方法,如`start()`启动线程,`join()`使当前线程等待指定线程结束,`sleep()`让线程暂时休眠,`interrupt()`中断线程,以及`yield()`让当前线程暂停执行,让其他线程有机会运行。...
Java线程可以通过继承`java.lang.Thread`类或实现`Runnable`接口来创建。 ##### 创建线程 1. **继承Thread类** - 创建`Thread`类的子类并重写`run()`方法。 - 实例化子类对象,并调用`start()`方法启动线程。 ...