java线程的举例2~6
TestThread2.java
public class TestThread2 { public static void main(String args[]) { Runner2 r = new Runner2(); Thread t1 = new Thread(r); Thread t2 = new Thread(r); t1.start(); t2.start(); } } class Runner2 implements Runnable { public void run() { for(int i=0; i<30; i++) { System.out.println("No. " + i); } } }
F:\java\Thread>javac TestThread2.java F:\java\Thread>java TestThread2 No. 0 No. 0 No. 1 No. 1 No. 2 No. 2 No. 3 No. 3 No. 4 No. 4 No. 5 No. 5 No. 6 No. 6 No. 7 No. 7 No. 8 No. 8 No. 9 No. 9 No. 10 No. 10 No. 11 No. 11 No. 12 No. 12 No. 13 No. 13 No. 14 No. 14 No. 15 No. 15 No. 16 No. 16 No. 17 No. 17 No. 18 No. 18 No. 19 No. 19 No. 20 No. 20 No. 21 No. 21 No. 22 No. 22 No. 23 No. 23 No. 24 No. 24 No. 25 No. 25 No. 26 No. 26 No. 27 No. 27 No. 28 No. 28 No. 29 No. 29 F:\java\Thread>
TestThread3.java
public class TestThread3{ public static void main(String args[]) { Runner3 r = new Runner3(); Thread t = new Thread(r); t.start(); } } class Runner3 implements Runnable { public void run() { for(int i=0; i<30; i++) { if(i%10==0 && i!=0) { try{ Thread.sleep(2000); }catch(InterruptedException e){} } System.out.println("No. " + i); } } }
F:\java\Thread>javac TestThread3.java F:\java\Thread>java TestThread3 No. 0 No. 1 No. 2 No. 3 No. 4 No. 5 No. 6 No. 7 No. 8 No. 9 No. 10 No. 11 No. 12 No. 13 No. 14 No. 15 No. 16 No. 17 No. 18 No. 19 No. 20 No. 21 No. 22 No. 23 No. 24 No. 25 No. 26 No. 27 No. 28 No. 29 F:\java\Thread>
TestThread4.java
public class TestThread4 { public static void main(String args[]){ Runner4 r = new Runner4(); Thread t = new Thread(r); t.start(); for(int i=0;i<100000;i++){ if(i%10000==0 & i>0) System.out.println("in thread main i=" + i); } System.out.println("Thread main is over"); //使用shutDown关闭,不要使用stop r.shutDown(); //t.stop(); } } class Runner4 implements Runnable { private boolean flag=true; public void run() { int i = 0; while (flag==true) { System.out.print(" " + i++); } } public void shutDown() { flag = false; } }
F:\java\Thread>javac TestThread4.java F:\java\Thread>java TestThread4 0in thread main i=10000 1in thread main i=20000 2in thread main i=30000 3in thread main i=40000 4in thread main i=50000 5in thread main i=60000 6 7in thread main i=70000 8 9 10in thread main i=80000 11in thread main i=90000 12Thread main is over 13 F:\java\Thread>
TestThread5.java
public class TestThread5 { public static void main(String args[]){ Runner5 r = new Runner5(); Thread t = new Thread(r); t.start(); try{ t.join(); }catch(InterruptedException e){ } for(int i=0;i<50;i++){ System.out.println("主线程:" + i); } } } class Runner5 implements Runnable { public void run() { for(int i=0;i<50;i++) { System.out.println("SubThread: " + i); } } }
F:\java\Thread>javac TestThread5.java F:\java\Thread>java TestThread5 SubThread: 0 SubThread: 1 SubThread: 2 SubThread: 3 SubThread: 4 SubThread: 5 SubThread: 6 SubThread: 7 SubThread: 8 SubThread: 9 SubThread: 10 SubThread: 11 SubThread: 12 SubThread: 13 SubThread: 14 SubThread: 15 SubThread: 16 SubThread: 17 SubThread: 18 SubThread: 19 SubThread: 20 SubThread: 21 SubThread: 22 SubThread: 23 SubThread: 24 SubThread: 25 SubThread: 26 SubThread: 27 SubThread: 28 SubThread: 29 SubThread: 30 SubThread: 31 SubThread: 32 SubThread: 33 SubThread: 34 SubThread: 35 SubThread: 36 SubThread: 37 SubThread: 38 SubThread: 39 SubThread: 40 SubThread: 41 SubThread: 42 SubThread: 43 SubThread: 44 SubThread: 45 SubThread: 46 SubThread: 47 SubThread: 48 SubThread: 49 主线程:0 主线程:1 主线程:2 主线程:3 主线程:4 主线程:5 主线程:6 主线程:7 主线程:8 主线程:9 主线程:10 主线程:11 主线程:12 主线程:13 主线程:14 主线程:15 主线程:16 主线程:17 主线程:18 主线程:19 主线程:20 主线程:21 主线程:22 主线程:23 主线程:24 主线程:25 主线程:26 主线程:27 主线程:28 主线程:29 主线程:30 主线程:31 主线程:32 主线程:33 主线程:34 主线程:35 主线程:36 主线程:37 主线程:38 主线程:39 主线程:40 主线程:41 主线程:42 主线程:43 主线程:44 主线程:45 主线程:46 主线程:47 主线程:48 主线程:49 F:\java\Thread>
TestThread6.java
public class TestThread6 { public static void main(String args[]){ Thread t = new Runner6(); t.start(); for(int i=0; i<50; i++) { System.out.println("MainThread: " + i); } } } class Runner6 extends Thread { public void run() { System.out.println(Thread.currentThread().isAlive()); for(int i=0;i<50;i++) { System.out.println("SubThread: " + i); } } }
F:\java\Thread>javac TestThread6.java F:\java\Thread>java TestThread6 MainThread: 0 MainThread: 1 true MainThread: 2 SubThread: 0 MainThread: 3 SubThread: 1 MainThread: 4 SubThread: 2 MainThread: 5 SubThread: 3 MainThread: 6 SubThread: 4 MainThread: 7 SubThread: 5 MainThread: 8 SubThread: 6 MainThread: 9 SubThread: 7 MainThread: 10 SubThread: 8 MainThread: 11 SubThread: 9 MainThread: 12 SubThread: 10 MainThread: 13 SubThread: 11 MainThread: 14 SubThread: 12 MainThread: 15 SubThread: 13 MainThread: 16 SubThread: 14 MainThread: 17 SubThread: 15 MainThread: 18 SubThread: 16 MainThread: 19 SubThread: 17 MainThread: 20 SubThread: 18 MainThread: 21 SubThread: 19 MainThread: 22 SubThread: 20 MainThread: 23 SubThread: 21 MainThread: 24 SubThread: 22 MainThread: 25 SubThread: 23 MainThread: 26 SubThread: 24 MainThread: 27 SubThread: 25 MainThread: 28 SubThread: 26 MainThread: 29 SubThread: 27 MainThread: 30 SubThread: 28 MainThread: 31 SubThread: 29 MainThread: 32 SubThread: 30 MainThread: 33 SubThread: 31 MainThread: 34 SubThread: 32 MainThread: 35 SubThread: 33 MainThread: 36 SubThread: 34 MainThread: 37 SubThread: 35 MainThread: 38 SubThread: 36 MainThread: 39 SubThread: 37 MainThread: 40 SubThread: 38 MainThread: 41 SubThread: 39 MainThread: 42 SubThread: 40 MainThread: 43 MainThread: 44 SubThread: 41 MainThread: 45 SubThread: 42 MainThread: 46 SubThread: 43 MainThread: 47 SubThread: 44 MainThread: 48 SubThread: 45 MainThread: 49 SubThread: 46 SubThread: 47 SubThread: 48 SubThread: 49 F:\java\Thread>
相关推荐
详细介绍了java中多线程的应用!对于初学java的同学们 很有帮助!
Java线程-Java内存模型是Java并发编程中的关键概念,它描述了多个线程如何共享和访问内存资源,以及如何保证数据的一致性和安全性。Java内存模型(JMM)是Java虚拟机规范的一部分,用于定义程序中各个线程对共享变量...
java多线程同步互斥访问实例,对于初学者或是温故而知新的同道中人都是一个很好的学习资料
6. **多线程**:Thread类代表了程序中的执行线程。`start()`方法启动线程,`run()`方法包含线程执行的代码。例如: ```java class MyThread extends Thread { public void run() { System.out.println("这是新...
在Java编程语言中,多线程同步是一种控制多个线程并发执行的重要机制,它确保了共享资源的安全访问,防止数据不一致性和竞态条件的发生。本文将深入探讨Java中的多线程同步方法,并通过实例来阐述其工作原理。 首先...
进程与Java线程的区别 - **内存占用**: - 进程: 每个进程有独立的地址空间,消耗更多内存。 - 线程: 共享同一进程的地址空间,内存消耗较低。 - **上下文切换成本**: - 进程: 上下文切换成本高。 - 线程: 上...
3. **线程状态**:Java线程有五种状态:新建(New)、可运行(Runnable)、运行(Running)、阻塞(Blocked)和终止(Terminated)。线程状态的转换是理解和调试多线程程序的关键。 4. **死锁**:当两个或更多线程...
`Thread`是Java提供的基础线程类,通过继承`Thread`并重写其`run()`方法,我们可以创建一个新的线程。在`run()`方法中编写需要在线程中执行的代码,例如这里的循环计数。示例中,我们可能会创建一个`Thread`对象,...
Java多线程-线程的安全问题与线程的同步机制介绍 在 Java 多线程编程中,线程安全问题是非常重要的一个话题。当多个线程访问同一个资源时,如果只有读操作那么不会出现线程安全问题,但是如果多个线程对资源进行读...
### Java多线程—线程间的通信 #### 一、线程间的通信 ##### (1)为什么要处理线程间的通信? 在多线程环境中,不同的线程可能需要协同工作来完成一项任务。例如,一个线程负责生产数据,另一个线程负责消费这些...
"JAVA实验典型举例"这个资源提供了一系列的Java实例,旨在帮助学习者深入理解和应用Java的核心概念。通过分析这些代码,我们可以强化理论知识,提高解决问题的能力。 首先,Java是一种面向对象的编程语言,它的主要...
计算机后端-Java-Java核心基础-第20章 多线程 06. 线程安全问题的举例和解决措施.avi
Java多线程技术详解 在计算机编程中,多线程是一种重要的并发处理机制,它允许多个任务在同一个程序中并行执行。Java作为一种强健的面向对象的编程语言,提供了丰富的多线程支持,使得开发者能够高效地利用系统资源...
Java垃圾回收器(Garbage Collector, GC)是Java编程语言中的一个重要特性,它负责自动管理内存,自动回收不再使用的对象,以防止内存泄漏。在Java中,程序员无需手动释放内存,这一过程由JVM(Java虚拟机)自动完成...
本文将介绍Java语言中多线程的两种实现方式,并分别举例说明了各自的特点、格式以及运行结果。 第一种实现方式是实现Runnable接口。Runnable接口定义了一个抽象方法run(),任何实现了Runnable接口的对象都可以成为...
Java多线程编程是Java开发中的一项重要技术,它允许程序同时执行多个任务,提高了系统效率和响应速度。然而,多线程环境下的编程也带来了一些挑战,如数据同步、线程安全等问题。本文将重点讨论Java多线程编程中需要...
Java的ExecutorService和ThreadPoolExecutor提供了一种更高效的方式来管理和控制线程,避免频繁创建和销毁线程的开销,提高系统的稳定性和性能。 综上所述,了解并熟练掌握多线程的创建和管理对于提升程序的运行...
在Java编程中,死锁是并发编程中一个重要的概念,它发生在两个或多个线程相互等待对方释放资源,导致它们都无法继续执行的情况。这个例子中,我们将会深入探讨死锁的产生、识别以及如何避免它。 首先,让我们理解...
本文将深入探讨Java线程中的几个关键概念,包括`yield()`、`sleep()`、`wait()`、`join()`以及`synchronized`关键字,以及`run()`和`start()`的区别。 1. `yield()`、`sleep()`、`wait()`的区别: - `yield()`:这...
java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任 何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。 Thread....