`
ly_xiao.D
  • 浏览: 3906 次
  • 性别: Icon_minigender_2
  • 来自: 吉林
社区版块
存档分类
最新评论

方法并行的实现——多线程

 
阅读更多

       在单CPU的系统中,系统调度在某一时刻只能让一个线程运行,整个程序便会遵循逻辑顺序逐步进行,这样一来,想要同时调用多个方法时不可避免地出现了竞争,“竞争力”强的方法还可以勉强正常运行,但弱的一方便处于饥饿状态,难以进行。更重要的一点是~一般我们在java中运行其它类中的方法时,无论是静态调用,还是动态调用,
都是在当前的进程中执行的,也就是说,只有一个java虚拟机实例在运行。那么,一旦有一个过程发生异常,其它的子进程也会相应受到影响。于是乎~多线程应运而生!
       首先,定义一个继承自Thread的线程类,并在该类中重写run方法,当然,千万不要忘记,预想并行的每一个方法都要在run()方法之外做相应的定义哦!

//定义一个线程类
public class PrintThread extends Thread {
 private int t=0;
 public PrintThread(int t){
  this.t = t;
 }
 //重写run方法
 public void run(){
  if (t==1){
   a();
  }
  else if (t==2){
   b();
  }
  else if(t==3){
   c();
  }
 }
 public void a(){
  for(int i=0;i<1000;i++){
   System.out.println("a在执行。。。");
   try{
    Thread.sleep(100);
   }catch(Exception ef){}
  }
 } 
 public void b(){
  for(int i=0;i<1000;i++){
   System.out.println("b在执行。。。");
   try{
    Thread.sleep(100);
   }catch(Exception ef){} 
  }  
 }
 public void c(){
  for(int i=0;i<1000;i++){
   System.out.println("c在执行。。。");
   try{
    Thread.sleep(100);
   }catch(Exception ef){}  
  }
 } 
}

 

       接下来,我们便可以定义一个测试类,实例化线程类对象之后,进行方法调用啦!需要注意的是~线程的启动用的是start()方法,而不是对run()方法的直接调用。
       另外两个需要注意的地方:

              1.线程的实现要写在run()方法里面。

              2.实行多线程的方法须在线程之外调用。

        相比之下,多线程的运用占用了较多的系统资源,但由于新启动的进程是在不同的虚拟机中运行,会使程序更加稳定,因此应用也更为广泛。
       接触了这一块的内容之后,我似乎看到了代码更为神奇的一面——与现实生活息息相关。For example~煮面。我们需要烧水、洗菜、准备其他各种食材等等,显然,我们可以先烧水,然后一边准备一边等水开,几项工作同时进行,而不是准备好后再去烧水,坐在那瞪着眼睛看水沸。
       很神奇的一个现象~似乎很多发明都是由懒人创造的,因为他们讨厌麻烦而喜欢寻找捷径。当然~更重要的是可以节省时间,用更短的时间创造出更多的价值!
       多线程——为计算机创造了一个可以“懒”起来的绝佳条件!~O(∩_∩)O~

分享到:
评论

相关推荐

    JAVA项目——多线程下载代码

    本项目以"JAVA项目——多线程下载代码"为主题,使用Eclipse集成开发环境进行实现,适合于Java初学者或毕业设计实践。下面我们将深入探讨相关的Java多线程下载知识点。 1. **线程基础**:在Java中,线程是程序执行的...

    安卓Android源码——多线程断点下载.zip

    这个“安卓Android源码——多线程断点下载.zip”文件很可能包含了实现这一功能的源代码示例。以下是对这一技术的详细说明: 1. **多线程下载**:传统的单线程下载方式容易受到网络波动的影响,速度可能较慢。多线程...

    IOS实例开发源码——多线程编程.zip

    "IOS实例开发源码——多线程编程.zip"这个压缩包提供了一些关于iOS多线程编程的实际案例,特别关注了GCD(Grand Central Dispatch)这一现代多线程管理工具。 1. **GCD简介** GCD是Apple为解决多核处理器环境下的...

    CPU中断——实现多线程机制

    ### CPU中断——实现多线程机制 #### 一、引言 在计算机系统中,多线程机制是一种常见的技术手段,用于提高程序的执行效率和响应能力。它允许在一个进程中同时运行多个线程,每个线程都可以独立地执行任务。为了...

    [并行计算——结构·算法·编程]

    - 并行计算类型:包括共享内存并行(多线程并行)、分布式内存并行(消息传递并行)和混合模式并行。 - 基本架构:如单指令多数据流(SIMD)、多指令多数据流(MIMD)以及超级计算机、网格计算和云计算平台。 2. ...

    多核并行实验——Ubuntu

    本实验"多核并行实验——Ubuntu"专注于利用Ubuntu操作系统进行多核并行计算的实践与学习。 **一、多核并行计算基础** 多核并行计算是指通过利用计算机中的多个处理器核心同时执行不同的计算任务,以达到提高整体...

    并行计算——结构·算法·编程习题答案

    提供的习题答案将涵盖以上所有领域,可能包括如何设计并行算法、如何实现特定的并行结构、如何调试并行程序以及如何评估并行性能等。通过解决这些习题,学习者能够加深对并行计算的理解,提升实际操作能力。 5. **...

    并行开发——Parallel[收集].pdf

    而在多线程程序中,我们可以创建多个工作线程,这些线程在执行时可以并行进行,提高程序的效率。在.NET Framework中,System.Threading.Tasks命名空间提供了对并行编程的支持。 平行开发的一个关键工具是System....

    ASP.NET源码——多线程数据采集器源码(C347 2.0).zip

    总之,"ASP.NET源码——多线程数据采集器源码(C347 2.0)"提供了研究和学习多线程编程、ASP.NET Web应用程序开发以及高效数据处理的一个实践案例。通过深入理解并分析这个源码,开发者能够提升在这些领域的专业技能。

    Android源码——多线程断点下载源码.zip

    然而,多线程下载将文件分割成多个部分,每个部分在一个单独的线程中并行下载,从而提高了下载速度。这种方法尤其在带宽有限或网络条件不稳定的情况下效果显著。 接下来,我们要讨论断点续传的概念。断点续传允许...

    ASP.NET源码——多线程数据采集器源码(C347 2.0) .zip

    在本案例中,"ASP.NET源码——多线程数据采集器源码(C347 2.0) .zip" 提供了一个利用ASP.NET技术实现的多线程数据采集器的源代码。这个工具可能被用来自动化地从互联网上抓取和处理大量信息,如网页内容、新闻、产品...

    操作系统课程设计——简单多线程

    在本项目"操作系统课程设计——简单多线程"中,我们将深入探讨多线程这一关键概念,以及它在操作系统中的实现。 多线程是指在一个进程中同时执行多个线程,每个线程都具有独立的执行路径,可以并行处理任务,提高...

    高性能计算之并行编程技术—— MPI并行程序设计.zip

    本资料“高性能计算之并行编程技术——MPI并行程序设计”提供了一个新手友好的学习资源,旨在帮助初学者理解并掌握MPI并行程序设计的基本原理和实践技巧。 MPI并行编程的核心思想是通过消息传递在不同的进程之间...

    QDshowRecordToMp4——界面线程.rar

    在本项目中,"界面线程"可能指的是用户交互界面的实现,这通常与多线程编程相关,确保用户界面的响应性与后台处理任务的并行执行。 在DirectShow框架中,开发者可以构建复杂的媒体管道来处理视频流。...

    面试题解惑系列(十)——话说多线程

    这是因为`start()`方法会调用`run()`方法,并且在Java中,只有通过`start()`方法调用的`run()`才会在新的线程上下文中执行,从而实现多线程。 **四、线程同步与互斥** 在多线程环境下,为了防止数据不一致性,Java...

    pb9多线程控件,能够真实实现多线程

    1. PowerBuilder 9.0的多线程实现:PB9不直接支持多线程,但可以通过第三方控件或自定义编程实现。 2. Ttimer.ocx控件:这是一个可能用于多线程环境的ActiveX定时器控件,可以触发并发操作。 3. 多线程的优势:多...

    安卓Android源码——多线程断点续传下载+在线播放音乐.zip

    3. **多线程并行下载**:创建多个下载任务,每个任务对应一个文件块,通过并发执行这些任务来加速下载。 4. **同步更新**:在下载过程中,需要确保所有线程对文件的写入操作是同步的,防止数据冲突。 5. **进度跟踪*...

    文件分割与合并实例——单线程模式

    如果需要提高性能,可以考虑采用多线程或多进程的方式,将文件的读写操作并行化,但这将引入更复杂的同步和通信问题,需要使用如互斥锁(mutex)、条件变量(condition variable)等同步机制来确保数据的一致性。...

    云边协同系统模型:利用线性搜索算法寻找最优路径,多线程并行提升性能,Matlab实现实践,云计算、边缘计算-云边协同系统模型 线形搜索算法寻找最优路径 多线程并行提升系统性能 Matlab实现 ,核心

    云边协同系统模型:利用线性搜索算法寻找最优路径,多线程并行提升性能,Matlab实现实践,云计算、边缘计算—云边协同系统模型 ...,基于云边协同的线形搜索算法与多线程并行性能提升模型——Matlab实现方案

Global site tag (gtag.js) - Google Analytics