`

多线程示例

 
阅读更多
public class Test implements Runnable{
    int i=100;
    
	public static void main(String [] args){
		Test th = new Test();
		new Thread(th,"sf2:").start();
		new Thread(th,"sf1:").start();
		new Thread(th,"sf3:").start();
		new Thread(th,"sf4:").start();
		new Thread(th,"sf5:").start();
		new Thread(th,"sf6:").start();
		new Thread(th,"sf7:").start();
		new Thread(th,"sf8:").start();
		new Thread(th,"sf9:").start();
		new Thread(th,"sf10:").start();
		
	}
	
	/**
	 * 守护线程
	 */
	public synchronized void run(){
			for(;i<1000;i++){
				System.out.println(Thread.currentThread().getName()+i);
		}
			System.out.println(Thread.currentThread().getName());
	}
}

结果
sf2:100
sf2:101
sf2:102
sf2:103
.....
sf2:999
sf2:
sf10:
sf9:
sf8:
sf7:
sf6:
sf5:
sf4:
sf3:
sf1:


在使用synchronized关键字时候,应该尽可能避免在synchronized方法或synchronized块中使用sleep或者yield方法,因为synchronized程序块占有着对象锁,你休息那么其他的线程只能一边等着你醒来执行完了才能执行。不但严重影响效率,也不合逻辑。
同样,在同步程序块内调用yeild方法让出CPU资源也没有意义,因为你占用着锁,其他互斥线程还是无法访问同步程序块。当然与同步程序块无关的线程可以获得更多的执行时间。

分享到:
评论

相关推荐

    易语言大漠多线程例子.rar

    这个"易语言大漠多线程例子.rar"压缩包包含了一个使用大漠插件实现多线程编程的示例项目。 多线程是现代程序设计中一个关键的概念,它允许程序同时执行多个任务,提高了程序的效率和响应性。在易语言中,使用大漠...

    Delphi中最简单的多线程例子

    本篇文章将详细讲解一个在Delphi中实现的最简单的多线程例子,帮助你理解如何在实践中应用多线程。 首先,让我们分析一下提供的文件列表: 1. `ThSort.dcu` 和 `SortThds.dcu`:这些是编译后的单元文件,包含了源...

    C# winform多线程模板示例,winform多线程例子,C#

    3. **C# WinForm多线程示例** - **后台任务执行**:使用`BackgroundWorker`组件,在`DoWork`事件中编写耗时操作代码。 - **UI更新**:由于跨线程更新UI不安全,需使用控件的`Invoke`或`BeginInvoke`方法确保在主线...

    Delphi API 串口通信 多线程例子.rar

    在"Delphi API 串口通信 多线程例子.rar"这个压缩包中,可能包含了一个示例项目,展示了如何使用Delphi的API和多线程技术实现串口通信。文件名"codefans.net"可能指的是一个代码分享网站,或者是一个特定的源代码...

    易语言借助乐玩图色脚本多线程例子

    在content.txt文件中,可能包含的是具体的源代码示例,通过阅读和分析这些代码,我们可以更深入地理解如何在易语言中结合乐玩图色脚本和鱼刺多线程模块进行实际的编程实践。如果你对这个例子感兴趣,应该尝试打开...

    今天没事给大家写一个多线程例子

    今天没事给大家写一个多线程例子 今天没事给大家写一个多线程例子

    java多线程示例

    本示例着重探讨如何在Java中实现和管理多线程,以及它带来的挑战和解决方案。 一、Java多线程基础 1. 创建线程: - 继承Thread类:创建一个新的类,继承自Thread类,重写其run()方法,然后创建该类的实例并调用...

    多线程例子

    在给定的“多线程例子”中,我们可以通过分析标题和描述来理解这个示例的核心内容。 标题“多线程例子”表明这是一个关于如何在程序中实现并使用多线程的实例。多线程通常用于处理并发操作,如在用户界面(UI)中,...

    多线程示例.rar

    "多线程示例.rar"是一个包含完整源码和编译好的示例程序的压缩包,目的是帮助开发者理解如何在Delphi中创建和管理多线程。以下是一些关键的知识点: 1. **TThread 类**:Delphi的`System.Classes`单元中定义了`...

    VB 稳定多线程示例源码

    通过上述讨论,我们可以看到,"VB 稳定多线程示例源码"提供的资源对于学习和理解VB中的多线程编程至关重要。它不仅展示了如何创建和管理线程,还可能包含了如何实现线程同步和异常处理的示例,这对于任何希望提高VB...

    简单的多线程示例delphi7

    总结起来,"简单的多线程示例delphi7"这个项目提供了一个基础的多线程实现,通过TThread类创建新线程,并通过重写Execute方法来定义线程任务。开发者可以通过学习这个示例,理解如何在Delphi 7中进行多线程编程,以...

    多线程例子 演示多线程使用

    这个“多线程例子”演示了如何在C++环境中实现多线程功能。下面我们将深入探讨多线程的基本概念、C++中的线程库以及如何创建和管理线程。 1. **多线程概念**:在单核CPU中,多线程是通过时间片轮转的方式实现的,即...

    C语言使用多线程例子

    在这个“C语言使用多线程例子”中,我们将探讨如何使用Windows API中的`CreateThread`函数来创建线程。 首先,`CreateThread`函数是Windows操作系统提供的一种API调用,用于在进程中创建新的执行线程。它的基本语法...

    稳定、方便、实用的VB6多线程技术(附老马的ActiveX多线程示例)

    "秋枫萧萧"的示例则可能是通过VB6的API函数,如CreateThread、ExitThread等,直接与Windows操作系统交互来实现多线程。这种方法更接近底层,灵活性更高,可以直接控制线程的创建、同步和销毁。然而,它需要对...

    C# 多线程示例

    ### C# 多线程示例详解 #### 标题:C# 多线程示例 本示例提供了一个简单且易于理解的C# 多线程编程案例,非常适合初学者快速掌握C# 中多线程的基本用法。通过实际代码演示了如何在C# 中创建线程、管理线程之间的...

    DuoXianCheng.rar_MFC_MFC多线程_MFC多线程例子_MFC界面线程_mfc 多线程

    在本文中,我们将深入探讨MFC(Microsoft Foundation Classes)库中的多线程概念,并通过一个实际的MFC多线程示例来理解其工作原理。标题"**DuoXianCheng.rar_MFC_MFC多线程_MFC多线程例子_MFC界面线程_mfc 多线程**...

    win32多线程例子(c语言)

    以下是一个简单的多线程示例: ```c #include // 线程函数原型 DWORD WINAPI ThreadFunction(LPVOID lpParam) { // 在这里写线程要执行的代码 printf("Hello from thread ID %lu\n", GetCurrentThreadId()); ...

    一个最简单的多线程例子

    本文将详细解释标题为"一个最简单的多线程例子"的VC多线程示例,以及如何利用这些概念来提升应用程序的性能。 首先,我们需要理解什么是线程。线程是操作系统分配CPU时间的基本单位,一个进程可以包含一个或多个...

    易语言lw简单多线程例子.zip

    《易语言lw简单多线程例子》是一个关于易语言编程的示例项目,它展示了如何在易语言中实现多线程功能。易语言是中国自主研发的一种简单易学的编程语言,旨在降低编程难度,让更多人能够参与到编程中来。在这个例子中...

Global site tag (gtag.js) - Google Analytics