首页 > 编程语言 >JAVA基础(多线程Thread和Runnable的使用区别

JAVA基础(多线程Thread和Runnable的使用区别

时间:2023-05-16 12:33:03浏览次数:44  
标签:Runnable JAVA Thread start run Test new 多线程


[color=red][size=x-large]两种定义方式[/size][/color]
定义方式一:

class TestThread extends Thread{
   public void run(){
   ........................
   }
}



Thread t = new TestThread();
t.run()
//或者
t.start();




定义方式二:


Thread t = new Runnable(
   public void run(
   ..........
   ){}
);
t.run()
//或者
t.start();



[color=red][size=large]JAVA基础(多线程Thread和Runnable的使用区别[/size][/color]


[url]http://jinguo.iteye.com/blog/286772[/url]


Runnable是Thread的接口,在大多数情况下“推荐用接口的方式”生成线程,因为接口可以实现多继承,况且Runnable只有一个run方法,很适合继承。



在使用Thread的时候只需要new一个实例出来,调用start()方法即可以启动一个线程。


Thread Test = new Thread(); 
Test.start();



在使用Runnable的时候需要先new一个继承Runnable的实例,之后用子类Thread调用。


Test impelements Runnable 
Test t = new Test(); 
Thread test = new Thread(t);



在某个题目里,需要分别打印出a与b各10次,并且每打印一次a睡1秒,打印一次b睡2秒。



可以在run方法外面定义String word与int time


之后用


Thread t1 = new Thread(); 
Thread t2 = new Thread(); 

t1.word = "a" 
t1.time = 1000 

t2.Word = "b" 
t2.time = 2000 

t1.start(); 
t2.start();



----Runnable的代码



class T implements Runnable{ 
String s = ""; 
int time = 0; 
public void run (){ 
   for (int i=0;i<10;i++) { 
    try { 
     Thread.sleep(time); 
    } catch (InterruptedException e) { 
     Thread.interrupted(); 
    } 
    System.out.println(s); 
   } 
} 
} 
public class Test { 
public static void main(String[] args) { 
   T t1 = new T(); 
   T t2 = new T(); 
   t1.s = "a"; 
   t1.time = 100; 
   t2.s = "b"; 
   t2.time = 200; 
   Thread a = new Thread(t1); 
   a.start(); 
   Thread b = new Thread(t2); 
   b.start(); 

} 
}

标签:Runnable,JAVA,Thread,start,run,Test,new,多线程
From: https://blog.51cto.com/u_3871599/6283429

相关文章

  • Java实现文件拷贝的4种方法.
    第一种方法:古老的方式publicstaticlongforJava(Filef1,Filef2)throwsException{longtime=newDate().getTime();intlength=2097152;FileInputStreamin=newFileInputStream(f1);FileOutputStreamout=newFileOutputStream(f2);byte[]buffer=newbyte......
  • tomcat startup.bat配置JAVA_HOME
    使用zip的tomcat包,不改变系统的环境变量JAVA_HOME的情况下启动:我用的是tomcat6.0.16在tomcat内部修改JAVA_HOME:bin/catalina.bat中头部添加setJAVA_HOME="D:\jdk\jdk1.6"估计在bin/startup.bat添加也可以,没有测试。要保留startup.bat运行的输出日志():修改startup.ba......
  • java实现zip与unzip
    jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简单。下边分别是压缩和解压缩的简单事例1,压缩的importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOut......
  • 使用java mail(jmail)通过gmail的stmp发送邮件:SSL方式
    [url]http://stackoverflow.com/questions/1990454/using-javamail-to-connect-to-gmail-smtp-server-ignores-specified-port-and-tries[/url]Transporttransport=session.getTransport("smtps");transport.connect(smtp_host,smtp_por......
  • 【Java】定时器CronExpression参数规则
    参考:定时器CronExpression配置说明详解-心和梦的方向-博客园(cnblogs.com) 项目中经常要使用到定时器,其中CronExpression配置非常重要。现在就配置说明详细解说一下:CronExpression表达式是由6个必需字段(秒、分、时、日、月、周)和一个可选字段(年)通过空格组成。cronExpres......
  • java基础(02)
    02-Java基础语法1.注释​ 注释是对代码的解释和说明文字。Java中的注释分为三种:单行注释://这是单行注释文字多行注释:/*这是多行注释文字这是多行注释文字这是多行注释文字*/注意:多行注释不能嵌套使用。文档注释:/**这是多行注释文字这是多行注释文字......
  • Java 中 ArrayList 和 LinkedList 有什么区别
    在Java中,ArrayList和LinkedList是两种常见的集合类。它们都实现了List接口,提供了类似数组的功能,可以存储任意类型的对象。虽然它们都可以实现相同的功能,但是它们的底层实现方式有所不同,因此在性能和用途上也存在一些差异。ArrayListArrayList是一个基于数组实现的动态数组,它可......
  • Java中两个字符串进行大小比较
    一:大小比较:使用String.compareTo方法如果需要忽略大小写,使用compareToIgnoreCasecompareTo()的返回值是int,它是先比较对应字符的大小(ASCII码顺序)1、如果字符串相等返回值02、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值表示前字符......
  • 汉字转换为拼音的JavaScript库的比较
    JSPinyin有提供了两个方法:<依赖mootools>1)一个是将汉字翻译为拼音,其中每一个字的首字母大写;1pinyin.getFullChars(this.value);2)一个是可以将每一个字的拼音的首字母提取出来,是大写的形式。1pinyin.getCamelChars(this.value);还可以设置是否判断多音字。只是功能比较简单,如......
  • Java生成缩略图之Thumbnailator
    Thumbnailator是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。 http://code.googl......