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

       在单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~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值