package cn.itcast;
/**
* 传统线程
*/
public class TraditionalThread {
public static void main(String[] args) {
// 第一种方法
Thread thread = new Thread() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread name:" + Thread.currentThread().getName());
System.out.println("2:" + this.getName());
}
}
};
thread.start();
// 第二种方法
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("runnable name:" + Thread.currentThread().getName());
}
}
});
thread2.start();
// 第三种方法 执行的是thread部分,覆盖了父类的run()方法
new Thread(new Runnable() {
public void run() {
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("runnable :"
+ Thread.currentThread().getName());
}
}
}) {
public void run() {
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("thread :"
+ Thread.currentThread().getName());
}
}
}.start();
}
}
分享到:
相关推荐
张孝祥老师的课程"传智播客_张孝祥_传统线程同步通信技术"深入浅出地讲解了这一主题,旨在帮助开发者理解和掌握线程间的协作与数据共享方式。 线程同步是指在多线程环境下,控制多个线程按一定的顺序执行,以避免...
本文将深入探讨传统线程同步通信技术,主要包括临界区、信号量、互斥量以及事件对象。 1. **临界区**(Critical Section) 临界区是程序中用于访问共享资源的代码段。为了防止多个线程同时进入临界区,我们可以...
了解并熟练掌握这些传统线程同步通信技术,能帮助你在多线程编程中有效地避免数据竞争,提高程序的并发性和可靠性。在实际开发中,应根据具体需求选择最合适的同步机制,同时考虑线程同步带来的开销,以实现最佳性能...
此为源码包,包含java中各种线程知识,有传统的线程调用方式,和java5以后线程启用及相关api使用方法(线程池,定时器,同步,互斥),传统和新版本jdk两种实现方式,内含代码,详细注释,案列丰富多彩!如果有对线程...
资源名称:Java多线程与并发库高级应用视频教程22集资源目录:【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程...
"Java并发之传统线程同步通信技术代码详解" Java并发之传统线程同步通信技术代码详解是Java编程语言中的一种重要技术,主要用于解决多线程之间的同步通信问题。在Java中,线程同步通信技术是通过wait()和notify()...
3. **异步编程**:除了使用传统线程,许多现代编程语言提供了异步编程模型,如Java的`CompletableFuture`,C#的`async/await`,JavaScript的回调函数或Promise。这些模型允许非阻塞I/O操作,进一步优化UI性能。 4. ...
张孝祥的Java多线程与并发库高级应用笔记涵盖了从传统线程技术到JDK1.5并发库的全面内容,不仅加深了对线程基本原理的认识,还介绍了现代Java并发编程的最佳实践。对于希望提升多线程编程技能的Java开发者来说,这是...
GCD是Apple提供的一个通用的多线程API,它的设计目标之一就是替代NSThread等传统线程技术。GCD基于C语言,并且充分地利用了设备的多核处理器。GCD的使用更为简单和面向对象,它的目的是简化多线程编程,使得开发者...
5. **异步编程**:除了使用传统线程外,还可以使用.NET的异步编程模型(如async/await关键字)来实现这个功能,这种方式可以更好地管理线程资源,提高程序效率。 6. **性能优化**:根据应用程序的需求,可能需要...
5. **异步编程与Task**:.NET 4.0引入了`Task`类,它是异步编程的主要工具,提供了比传统线程更高级别的抽象。Task可以用来执行异步操作,与线程相比,它们更适合于I/O密集型任务。例如: ```csharp Task.Run(() =...
要解决C10K问题,传统的多线程模式和select模式都不再适用,应采用epoll,kqueue,dev_poll来捕获IO事件.zip
它不依赖于传统线程模型中的栈帧保存和恢复机制,而是通过一组宏来控制程序流程,使得每个线程能够保存其运行状态,并在下次调度时从中断的地方恢复执行。这样一来,每个线程就像是一个自动的流程控制块,能够在中断...
虽然本例使用了传统线程,但现代C#推荐使用基于任务的异步编程(TAP),如Task类。Task更高效,能更好地利用系统资源,并简化并发代码。如果重写此代码,可以考虑使用async/await关键字。 6. **Random类与线程安全...
#### 一、传统线程机制 **1.1 线程的概念** 线程是程序执行流的基本单元,是操作系统能够进行运算调度的最小单位。简单来说,线程就是一个单一的指令序列,沿着这条路径依次执行指令。在一个进程中,如果存在多个...
纤程是比传统线程更为轻量级的执行单元,它们可以相互协作并共享相同的调度器。每个纤程都有自己的独立栈空间,这使得纤程可以在不同的状态之间进行切换而不会影响到其他纤程。 ##### 1. **上下文切换** Quasar ...
#### 五、从传统线程迁移到现代并发模型 **5.1 使用DispatchQueue代替线程** 讲解了如何逐步将应用程序从传统的线程模型迁移到基于`DispatchQueue`的并发模型。 **5.2 替换线程锁** 介绍了如何替换线程锁以减少...
协程允许线程之间的切换更加灵活和高效,由程序员手动控制,避免了传统线程的抢占式调度可能导致的问题。这种方式降低了上下文切换的成本,提高了并发性能,同时也降低了多线程编程的复杂性。 **JDK21虚拟线程的...
- 特点:LWP之间的切换由内核管理,比传统线程切换更高效。 #### 五、多线程编程案例分析 - **生产者消费者模型:** - 描述:一个典型的多线程编程模式,包括生产者线程(负责生成数据)和消费者线程(处理数据)...