package com.hgf.thread;
public class ExtThread extends Thread {
private String name;
public ExtThread(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("线程开始:" + name + ",i=" + i);
}
}
public static void main(String[] args) {
ExtThread mt1 = new ExtThread("线程a");
ExtThread mt2 = new ExtThread("线程b");
//run 会先执行完线程a在执行线程b
mt1.run();
mt2.run();
}
}
package com.hgf.thread;
public class ExtThread extends Thread {
private String name;
public ExtThread(String name) {
this.name = name;
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("线程开始:" + name + ",i=" + i);
}
}
public static void main(String[] args) {
ExtThread mt1 = new ExtThread("线程a");
ExtThread mt2 = new ExtThread("线程b");
//start 会交叉运行
mt1.start();
mt2.start();
}
}
package com.hgf.thread;
public class ImpRunnable implements Runnable {
private String name;
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
System.out.println("线程开始:" + name + ",i=" + i);
}
}
public ImpRunnable(String name){
this.name = name;
}
public static void main(String[] args) {
ImpRunnable imp = new ImpRunnable("线程a");
ImpRunnable imp2 = new ImpRunnable("线程b");
new Thread(imp).start();
new Thread(imp2).start();
}
}
package com.hgf.thread;
public class ThreadTicket extends Thread {
private int ticket = 10;
public void run() {
for (int i = 0; i < 20; i++) {
if (this.ticket > 0) {
System.out.println("卖票:ticket" + ticket--);
}
}
}
public static void main(String[] args) {
ThreadTicket mt1=new ThreadTicket();
ThreadTicket mt2=new ThreadTicket();
ThreadTicket mt3=new ThreadTicket();
mt1.start();//每个线程都各卖了10张,共卖了30张票
mt2.start();//但实际只有10张票,每个线程都卖自己的票
mt3.start();//没有达到资源共享
}
}
package com.hgf.thread;
public class ThreadTicket implements Runnable {
private int ticket = 10;
public void run() {
for (int i = 0; i < 20; i++) {
if (this.ticket > 0) {
System.out.println("卖票:ticket" + ticket--);
}
}
}
public static void main(String[] args) {
ThreadTicket mt=new ThreadTicket();
new Thread(mt).start();//同一个mt,但是在Thread中就不可以,如果用同一 个实例化对象mt,就会出现异常
new Thread(mt).start();
new Thread(mt).start();
}
}
相关推荐
很简单的一个java多线程例子,希望多大家有帮助
### Java多线程小例子详解 #### 知识点一:基本多线程示例 在给定的代码示例中,我们首先看到的是一个简单的Java多线程应用实例。这个例子展示了如何创建并启动一个新的线程。在`ThreadDemo`类的`main`方法中,...
这个名为"Java多线程的小例子——吃包子"的示例,旨在帮助开发者直观地理解多线程的工作原理。下面我们将深入探讨该示例所涉及的核心知识点。 首先,多线程通常涉及到以下几个关键概念: 1. **线程(Thread)**:...
根据提供的文件信息,我们可以归纳出以下关于Java多线程的经典示例中的关键知识点: ### Java多线程实现方式 在Java中,实现多线程有两种主要的方法:通过继承`Thread`类或者实现`Runnable`接口。 #### 继承...
Java 多线程例子 Java 多线程是 Java 编程语言中的一种基本概念,它允许程序同时执行多个任务,从而提高程序的性能和效率。本文将通过三个实用的例子,讲解 Java 多线程的基本概念和使用方法。 第一个例子:创建多...
在Java多线程编程中,理解如何创建和...总的来说,这个例子展示了Java多线程的基本操作,包括创建、启动、管理和通信。理解和掌握这些概念对于进行并发编程是至关重要的,可以帮助开发者构建高效、稳定的多线程应用。
### Java多线程编程详解与实战案例 #### 理解多线程概念与Java内存模型 多线程,作为现代编程中的一项关键技术,允许在单一应用程序中并发执行多个指令流,每个这样的指令流被称为一个线程。在Java中,线程被视为...
Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,极大地提升了程序的效率和性能。在Java中,实现多线程有两种主要方式:通过实现Runnable接口或者继承Thread类。本案例将深入探讨Java多线程中的关键...
Java线程是Java编程中的重要概念,它允许程序同时...理解这些知识点对于编写高效、安全的多线程Java应用程序至关重要。在实践中,合理地利用线程和同步机制,能有效提升程序的性能,避免资源冲突,确保程序的稳定运行。
在Java编程语言中,线程是程序执行的基本单元,它允许程序同时执行多个任务。Java中的线程模型是建立在操作系统级别的线程之上的,因此,通过Java的线程机制,开发者可以充分利用多核处理器的资源,提高程序的并发性...
总的来说,Java多线程提供了丰富的功能,包括线程的创建、启动、中断、同步以及异常处理等。通过合理利用这些工具,开发者可以构建出高效、稳定且响应迅速的多线程应用程序。在实际编程中,要特别注意线程安全和性能...
1. **简化程序设计**:由于无需处理多线程间的竞争条件或死锁等问题,因此程序设计更加简单明了。 2. **易于调试**:单线程程序的调试相对容易,因为不存在多个线程之间复杂的交互情况。 3. **资源消耗少**:单线程...
在本文中,我们将深入探讨Java多线程的基本概念,并通过一个简单的实例来理解其工作原理。 首先,我们需要了解Java中的线程是如何创建的。在Java中,有三种主要的方式来创建线程: 1. **实现Runnable接口**:这是...
在Java编程语言中,多线程是核心特性之一,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应...文档“java多线程实例.docx”可能包含具体的示例代码和详细解释,建议参考学习,以加深对Java多线程的理解。
Java 多线程访问的经典例子,一个个代码 手动敲出,可以加深或理解 多线程访问 线程安全与同步的问题.
总之,Java多线程和异步调用是构建高效、响应迅速的应用程序的关键技术。通过合理利用这些工具和机制,开发者可以编写出能够充分利用多核处理器优势的代码,从而提高软件性能。在实际应用中,理解并熟练掌握这些概念...
在Java编程中,多线程是一项关键特性,...总之,这个"JAVA多线程的一个带UI界面的例子"涵盖了Java多线程编程和GUI设计的核心概念,通过实际的代码示例,有助于开发者深入理解如何在实际应用中正确、高效地使用多线程。
现在,让我们来看一个简单的订票系统的Java多线程示例。假设我们有一个票务系统,其中的`TicketService`类包含一个`tickets`变量表示剩余票数: ```java public class TicketService { private int tickets = 100;...
Java多线程是Java编程中的重要概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在Java中,实现多线程有两种主要方式:通过继承`Thread`类和实现`Runnable`接口。 1. 继承Thread类: 当你需要创建一...
java多线程例子(1).pdf java多线程例子(1).pdf java多线程例子(1).pdf