`
i拾贝
  • 浏览: 29923 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java线程的举例2~6

    博客分类:
  • java
阅读更多

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线程-Java内存模型是Java并发编程中的关键概念,它描述了多个线程如何共享和访问内存资源,以及如何保证数据的一致性和安全性。Java内存模型(JMM)是Java虚拟机规范的一部分,用于定义程序中各个线程对共享变量...

    java多线程同步例子

    java多线程同步互斥访问实例,对于初学者或是温故而知新的同道中人都是一个很好的学习资料

    java常用API举例

    6. **多线程**:Thread类代表了程序中的执行线程。`start()`方法启动线程,`run()`方法包含线程执行的代码。例如: ```java class MyThread extends Thread { public void run() { System.out.println("这是新...

    java 多线程同步方法的实例

    在Java编程语言中,多线程同步是一种控制多个线程并发执行的重要机制,它确保了共享资源的安全访问,防止数据不一致性和竞态条件的发生。本文将深入探讨Java中的多线程同步方法,并通过实例来阐述其工作原理。 首先...

    Java多线程文章系列.pdf

    进程与Java线程的区别 - **内存占用**: - 进程: 每个进程有独立的地址空间,消耗更多内存。 - 线程: 共享同一进程的地址空间,内存消耗较低。 - **上下文切换成本**: - 进程: 上下文切换成本高。 - 线程: 上...

    java中的 双线程,举一反三

    3. **线程状态**:Java线程有五种状态:新建(New)、可运行(Runnable)、运行(Running)、阻塞(Blocked)和终止(Terminated)。线程状态的转换是理解和调试多线程程序的关键。 4. **死锁**:当两个或更多线程...

    安卓开发之多线程举例

    `Thread`是Java提供的基础线程类,通过继承`Thread`并重写其`run()`方法,我们可以创建一个新的线程。在`run()`方法中编写需要在线程中执行的代码,例如这里的循环计数。示例中,我们可能会创建一个`Thread`对象,...

    Java多线程-线程的安全问题与线程的同步机制介绍

    Java多线程-线程的安全问题与线程的同步机制介绍 在 Java 多线程编程中,线程安全问题是非常重要的一个话题。当多个线程访问同一个资源时,如果只有读操作那么不会出现线程安全问题,但是如果多个线程对资源进行读...

    Java多线程-线程间的通信

    ### Java多线程—线程间的通信 #### 一、线程间的通信 ##### (1)为什么要处理线程间的通信? 在多线程环境中,不同的线程可能需要协同工作来完成一项任务。例如,一个线程负责生产数据,另一个线程负责消费这些...

    JAVA实验典型举例

    "JAVA实验典型举例"这个资源提供了一系列的Java实例,旨在帮助学习者深入理解和应用Java的核心概念。通过分析这些代码,我们可以强化理论知识,提高解决问题的能力。 首先,Java是一种面向对象的编程语言,它的主要...

    计算机后端-Java-Java核心基础-第20章 多线程 06. 线程安全问题的举例和解决措施.avi

    计算机后端-Java-Java核心基础-第20章 多线程 06. 线程安全问题的举例和解决措施.avi

    Java多线程技术详解

    Java多线程技术详解 在计算机编程中,多线程是一种重要的并发处理机制,它允许多个任务在同一个程序中并行执行。Java作为一种强健的面向对象的编程语言,提供了丰富的多线程支持,使得开发者能够高效地利用系统资源...

    java垃圾回收器代码举例

    Java垃圾回收器(Garbage Collector, GC)是Java编程语言中的一个重要特性,它负责自动管理内存,自动回收不再使用的对象,以防止内存泄漏。在Java中,程序员无需手动释放内存,这一过程由JVM(Java虚拟机)自动完成...

    析Java多线程机制.pdf

    本文将介绍Java语言中多线程的两种实现方式,并分别举例说明了各自的特点、格式以及运行结果。 第一种实现方式是实现Runnable接口。Runnable接口定义了一个抽象方法run(),任何实现了Runnable接口的对象都可以成为...

    举例解析Java多线程编程中需要注意的一些关键点

    Java多线程编程是Java开发中的一项重要技术,它允许程序同时执行多个任务,提高了系统效率和响应速度。然而,多线程环境下的编程也带来了一些挑战,如数据同步、线程安全等问题。本文将重点讨论Java多线程编程中需要...

    多线程创建举例问题下载

    Java的ExecutorService和ThreadPoolExecutor提供了一种更高效的方式来管理和控制线程,避免频繁创建和销毁线程的开销,提高系统的稳定性和性能。 综上所述,了解并熟练掌握多线程的创建和管理对于提升程序的运行...

    java 一个死锁的例子

    在Java编程中,死锁是并发编程中一个重要的概念,它发生在两个或多个线程相互等待对方释放资源,导致它们都无法继续执行的情况。这个例子中,我们将会深入探讨死锁的产生、识别以及如何避免它。 首先,让我们理解...

    多线程精心总结

    本文将深入探讨Java线程中的几个关键概念,包括`yield()`、`sleep()`、`wait()`、`join()`以及`synchronized`关键字,以及`run()`和`start()`的区别。 1. `yield()`、`sleep()`、`wait()`的区别: - `yield()`:这...

    JAVA最新面试资料-备战2023金三银四

    java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任 何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护线程,反之则为用户线程。 Thread....

Global site tag (gtag.js) - Google Analytics