1.继承Thread类
声明一个内部(外部)类,假如名字叫做 Thread1,继承Thread类,重写(Override)其中的run方法。
定义一个类,里面再定义一个Thread1类型的对象,调用start()方法。
举个例子吧:
public class ThreadTest1 { public static void main(String[] args){ Thread1 t1 = new Thread1(); t1.start(); } } class Thread1 extends Thread{ @Override public void run(){ for(int i=0;i<100;i++){ System.out.println("Thread 111111-------"+i); } } }
2.实现Runnable接口
声明一个内部(外部)类,假如名字叫做MyThread,实现Runnable接口,实现其中的run方法。
定义一个类,里面定义一个Thread类型的对象,把MyThread的对象当作参数传递进去,调用start方法。
public class ThreadTest2 { public static void main(String[] args){ MyThread mt = new MyThread(); Thread t2 = new Thread(mt); //上面2行可以写成 Thread t2 = new Thread(new MyThread()); t2.start(); } } class MyThread implements Runnable{ @Override public void run(){ for(int i=0;i<100;i++){ System.out.println("Thread 22222-------"+i); } } }
3.比较一下两种方法吧
从我自己的理解来看,实现Runnable接口的代码更健壮。
原因很简单,java是单继承的,从长远假设来看,也许这个类改天想干点其它的事情,必须再继承某个类,因为你已经继承了Thread类,你就不能再继承了。
接口之所以灵活就在于,你可以实现多个接口,而且实现接口了还可以继续继承一个类,所以呢,给程序员带来更大的灵活性。
相关推荐
java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...
1、Java有两种实现多线程的方式:通过Runnable接口、通过Thread直接实现,请掌握这两种实现方式,并编写示例程序。 2、多线程是并发执行的,交替占有cpu执行,请编写示例程序,并观察输出结果。 3、采用线程同步方法...
* 实现方式的好处:避免了单继承的局限性 在定义线程时. * 建议使用实现方式 * 区别: * 继承Thread:线程代码存放Thread子类run方法中 实现 * Runnable:线程代码存放接口的子类的run方法 * wait释放资源,释放锁 ...
使用COCOS2DX实现线程后台运作与推送,当点击HOME键后进入后台运作方式,开启后台线程,使用VOIP;
使用多线程程序模拟实现单生产者/多消费者问题。 要求“生产者”随机产生一个整数,“消费者 1”将这个整数加 1 后输出,“消 费者 2”将这个整数加 2 后输出,“消费者 3”将这个整数加 3 后输出,“消 费者 4”将...
众所周知,在普通的非线程安全队列有两种实现方式: 1.使用数组实现的循环队列。 2.使用链表实现的队列。 先看看两种方式的优劣: .Net Farmework中的普通队列Queue的实现使用了第一种方式,缺点是当队列空间不足会...
实现Runable接口的方式: 1创建实现Runable接口的实现类:必须实现run 方法 2创建1中对应的Runable接口的实现对象 3创建Thread对象 利用Thread Runable target 4调用Thread类的start 方法启动线程
2.以多线程方式实现接收客户端信息 3.间客户端发送的信息解码输出 思路分析 1.创建一个TCP客户端套接字 2.写一个接收消息的方法,可以接收客户端消息并解码输出 3.客户端被动监听,每有一个客户端连接就创建一...
2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,...
请使用“匿名Runnable”子类的方式实现线程,线程中计算1--500所有数字的累加和,并打印计算结果
编写两个线程: 第一个线程计算2-1000000之间的质数及个数 第二个线程计算1000000-2000000之间的质数 及个数
Qt创建多线程的方式有4种,大多数情况下使用2种就可以了; 前提: 什么是线程,多线程,什么时候使用多线程? 线程,就是CPU执行的最小单元,当然线程需要依赖进程而活着,线程不能独立存在; 每一个进程都会...
Java中的多线程有三种实现方式: 1.继承Thread类,重写run方法。Thread本质上也是一个实现了Runnable的实例,他代表一个线程的实例,并且启动线程的唯一方法就是通过Thread类的start方法。 2.实现Runnable接口,并...
很不错的文章,讲解了多线程的两种方式,各自的使用特色
多线程方式实现简单易用的套接字,使用TCP协议 阻塞方式. 最大发送数据字节数不宜超过1KB. 同时实现了客户端及服务器端功能,可接收及发送数据. 版本: v1.0.0 第一版本发布时间: 20100823 第一作者: Jef ...
Qt线程间共享数据主要有两种方式: 1)使用共享内存。即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。 2)使用singal/slot机制,把数据从一个...
1、基于mongoose 6.7实现的http server 2、支持多线程(本项目使用vs2008编译) 3、附带mongoose6.7版本源代码,6.7以上的版本,多线程实现方式与现在不一样)
是关于串口通信技术, C++实现, 代码是VS2010环境 1.异步方式通信 2.多线程实现 3.纯API方式实现
启动两个线程,一个线程打印1~52,另一个线程打印A~Z
2)支持多线程用户访问,多线程日志,支持ODBC方式的数据库访问(db2只举了一个查询的例子) 3)Linux 下INI文件的读取,支持KDevelop的开发,工程文件我没放 4)如果您能掌握这个思想,我觉得您可以做一名了C/S开发...