java中多线程的两种创建方式
一丶继承Thread类实现多线程
- 第一步:继承Thread类
第二步:重写run()方法
第三步:创建继承了Thread类的对象 , 调用start()方法启动。
- //线程创建方式一 :
- /*
- 第一步:继承Thread类
- 第二步:重写run()方法
- 第三步:创建继承了Thread类的对象 , 调用start()方法启动。
- */
- public class TestThread extends Thread{
- @Override
- public void run() {
- for (int i = 0; i < 3000; i++) {
- System.out.println("爱你三千遍");
- }
- }
- public static void main(String[] args) {
- TestThread testThread = new TestThread();
- testThread.start();
- }
- }
二丶实现Runnable接口创建多线程
- 第一步:实现runnable接口
第二步:冲写run方法
第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
- public class Thread_Study implements Runnable{
- /*
- * 第一步:实现runnable接口
- * 第二步:冲写run方法
- * 第三步:创建实现类对象,创建代理类thread类对象 +start()方法启动线程
- *
- * */
- @Override
- public void run() {
- for (int i = 0; i < 100; i++) {
- System.out.println("看书");
- }
- }
- public static void main(String[] args) {
- Thread_Study ts = new Thread_Study();
- new Thread(ts).start();
- for (int i = 0; i < 100; i++) {
- System.out.println("敲代码");
- }
- }
- }
运行结果:
敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
敲代码
看书
看书
看书
看书
看书
看书
看书
结论:
我们可以观察到敲代码和看书同时进行每个线程之间是不相互干涉的,各自执行各自的,这和调用方法不同,调用方法是等到上一个步骤执行完成才可以在执行下一个步骤.
java中多线程的两种创建方式的更多相关文章
- Java中String对象两种赋值方式的区别
本文修改于:https://www.zhihu.com/question/29884421/answer/113785601 前言:在java中,String有两种赋值方式,第一种是通过“字面量”赋值 ...
- 细说java中Map的两种迭代方式
曾经对java中迭代方式总是迷迷糊糊的,今天总算弄懂了.特意的总结了一下.基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代訪问)Collecti ...
- Android中Fragment的两种创建方式
fragment是Activity中用户界面的一个行为或者是一部分.你可以在一个单独的Activity上把多个Fragment组合成为一个多区域的UI,并且可以在多个Activity中再使用.你可以认 ...
- Java中容器的两种初始化方式比较
List,Set,Map的两种初始化赋值方式 List List<Integer> list2 = new ArrayList<Integer>(); for (int i= ...
- java多线程的两种创建方式
方式一:继承Thread类 1.创建一个继承于Thread类的子类 2.重写Thread类的run()方法---> 将此线程执行的操作声明在run()中 3.创建Thread类的子类的对象 4. ...
- String变量的两种创建方式
在java中,有两种创建String类型变量的方式: String str01="abc";//第一种方式 String str02=new String("abc&qu ...
- 阿里巴巴--java多线程的两种实现方式,以及二者的区别
阿里巴巴面试的时候,昨天问了我java面试的时候实现java多线程的两种方式,以及二者的区别当时只回答了实现线程的两种方式,但是没有回答上二者的区别: java实现多线程有两种方式: 1.继承Thre ...
- JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解
在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...
- 【转载】JAVA中线程的两种实现方法-实现Runnable接口和继承Thread类
转自: http://blog.csdn.net/sunguangran/article/details/6069317 非常感谢原作者,整理的这么详细. 在java中可有两种方式实现多线程,一种是继 ...
随机推荐
- spring 事件模式 源代码导读
一,jdk 事件对象基类 package java.util; import java.io.Serializable; public class EventObject implements Ser ...
- yii第三方插件snoopy配置
首先.把snoopy类放到protected\extensions\snoopy\目录下. 其次.在yii配置文件main.php里配置import扩展进来. 'import'=>array( ...
- VS2013带来的"新特性"
VS2013除了引入"Bootstrap"库以外,最大的变化就是.net Framework 4.5下面的都不支持了.也就是说,假设不把.net库升级成.net Framework ...
- NAND flash坏区
计算容量 厂家所说的4G指的是4 000 000 000字节,是按1000进制计算的,而电脑是按照1024进制计算的,所以标称为4G的NAND Flash理论容量是4 000 000 000 / 10 ...
- Zed Shaw:一位老程序员的建议
Advice from an Old Programmer 原文:Zed Shaw,译文:外刊IT评论 导读:原文作者Zed Shaw是一位作家.软件开发人员.音乐人(下文中提到吉他手),于2010年 ...
- jquery 选择器(selector)和事件(events)
页面加载完成后开始运行do stuff when DOM is ready 中的语句! $(document).ready(function() { // do stuff when DO ...
- Http常用状态码及含义
HTTP 400 – 请求无效 HTTP 404- 无法找到文件或目录 HTTP 500 – 内部服务器错误 HTTP 502 – 网关错误 HTTP 400 – 请求无效 HTTP 401.1 – ...
- 如何查看一个Application是32位的还是64位的?
使用process explorer查看,找到对应的进程. 注册表的路径是Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ 使用powershell查 ...
- 计算机学院大学生程序设计竞赛(2015’12)Bitwise Equations
Bitwise Equations Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- SocketErrorCode:10022
在编写.net的网络服务器时,我使用了裸socket来实现.在windows上,或者在linux上通过.net core来跑时都没有什么问题,但是通过mono运行调用socket.Bind()时却总是 ...