多线程的两种实现方法
单线程:安全性高,效率低
多线程:安全性低,效率高
一、
多线程的第一种实现方式:创建一个继承Thread的类,实现run()方法,然后在另一个类中创建该类的对象,通过对象去调用多线程中的方法。
代码如下:
1.创建继承Thread的类
package test1;public class MyThread extends Thread{public void run() {for (int i = 0; i < 100; i++) {System.out.println(getName()+":"+i); //得到线程名字}}
}
2.创建对象实现多线程
package test1;public class MyThreadDemo {public static void main(String[] args) {MyThread mt = new MyThread();mt.setName("范冰冰"); //修改线程名字mt.start();MyThread mt2 = new MyThread();mt2.setName("胡歌");mt2.start();}
}
二、
多线程的第二种实现方法:创建一个类实现Runnable接口,也是实现run()方法,后面的步骤相同,因为eclipse里面是单一继承的,通过实现接口可以让该类可以继承其他的类。
代码如下:
1.实现接口和方法
package test2;public class MyThread2 implements Runnable{public void run() {for (int i = 0; i < 100; i++) {
// Thread tr = Thread.currentThread();
// System.out.println(tr.getName()+":"+i); //因为实现接口之后没有getName()方法,所以通过类去调用方法System.out.println(Thread.currentThread().getName()+":"+i);}}}
2.开启线程
package test2;public class MyThreadDemo2 {public static void main(String[] args) {MyThread2 mt = new MyThread2();Thread td = new Thread(mt);td.setName("张三");td.start();Thread td2 = new Thread(mt);td2.setName("李四");td2.start();}
}
多线程的两种实现方法相关推荐
- 多线程有几种实现方法?同步有几种实现方法?
多线程有两种实现方法,分别是继承Thread类与实现Runnable接口 同步的实现方面有两种,分别是synchronized,wait与notify wait():使一个线程处于等待状态,并且释放所 ...
- 多线程有几种实现方法,同步有几种实现方法
多线程有几种实现方法,同步有几种实现方法 多线程有两种实现方法:继承 Thread 类或者实现 Runnable 接口. 一.继承 Thread 类 //1.作为Thread的子类,并重写run方法. ...
- 多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么
java中多线程的实现方法有两种: 1. 直接继承thread类; 2.实现runnable接口;同百步的实现方法有五种: 1.同步方法; 2.同步代码块; 3.使用特殊域变量(volatile)实现 ...
- 面试题——多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有两种实现方法,一是继承Thread类,重写方法run(),二是实现Runnable接口,实现方法run(): 同步有两种实现方法,分别是synchronized.wait与notify.
- 多线程有几种实现方法都是什么?
多线程有两种实现方法,如下所示: 一:继承Thread类,重写方法run(): 二:实现Runnable接口,实现方法run():
- java多线程同步的四种方法_java中实现多线程的两种方法
java多线程有几种实现方法,都是什么?同步有几种实java中多线程的实现方法有两种:1.直接继承thread类:2.实现runnable接口:同步的实现方法有五种:1.同步方法:2.同步代码块:3. ...
- 【Java_多线程并发编程】基础篇—线程状态及实现多线程的两种方式
1.Java多线程的概念 同一时间段内,位于同一处理器上多个已开启但未执行完毕的线程叫做多线程.他们通过轮寻获得CPU处理时间,从而在宏观上构成一种同时在执行的假象,实质上在任意时刻只有一个线程获得C ...
- 启动多线程的两种情况比较
启动多线程有两种方式:(都是在主线程main线程下) 1. 使用同一个线程对象来启多个线程 2. 使用多个线程对象来启多个线程 这两种方式有什么区别呢?先贴上代码举例说明: 这是使用线程对象MyRun ...
- 在.NET中执行Async/Await的两种错误方法
微信公众号:架构师高级俱乐部 关注可了解更多的编程,架构知识.问题或建议,请公众号留言; 如果你觉得此文对你有帮助,欢迎转发 在.NET中执行异步/等待的两种错误方法 在应用开发中,我们为了提高应用程 ...
最新文章
- mybatis3进行模糊查询的总结
- 理解JavaScript面向对象的思路
- SAP Spartacus layoutSlots ID 和 CMSComponent 的映射关系
- SAP CRM扩展字段的渲染和属性处理原理
- centos安装docker显示 No package docker-ce available
- 信安教程第二版-第24章工控安全需求分析与安全保护工程
- pytorch根据特征图训练LSTM Stacked AutoEncoder
- bootstrap学习笔记(1)基础段落,表格的实现
- matlab图像中提取不连续的点_MATLAB边缘检测GUI设计
- SQL SERVER2017 安装程序无法与下载服务器联系。无法安装机器学习服务的问题解决方式...
- spring 中事物的说明
- 【MD5加密算法能被破解么?】
- iVMS-4200 Vs区别_菲尔·杰克逊揭示了迈克尔·乔丹和科比·布莱恩特之间的关键区别...
- dropbox无法访问后国内网盘对比选择
- 消毒机器人市场前景分析
- 计算机微课ppt,全国“xx杯”计算机类说课大赛课件一等奖作品:制作“旅游专线”PPT微课课件.pptx...
- 教子要过计算机考试吗,[教子有方]高考家长最容易陷入的十大志愿填报误区
- 校招(春招实习 + 秋招)总结感想
- Win10中找不到gpedit.msc
- java-php-python-ssm原创网络文学管理系统计算机毕业设计
热门文章
- RabbitMQ--扩展--11--均衡负载
- C++行为型模式-实现观察者模式
- 如何使用 JavaScript 构建计算器应用程序
- android有道翻译代码,Android使用有道翻译API实如今线翻译功能(示例代码)
- 汉明码的原理、生成和检验
- 数据库连接池 ( 五 ) Druid 数据监控
- Windows桌面实现之八(DirectX HOOK 方式截取特殊的全屏程序之二)
- oracle数据库分页查询
- 图像特征之SURF特征匹配
- 运放脉冲宽度放大_下一代Ka波段雷达系统应用脉冲行波管放大器(twta),工作频率为34至36GHz,峰值功率为1000瓦,占空比为10%。...