文档章节

23.多线程 实现的两种方式

Lucky_Me
 Lucky_Me
发布于 2017/07/29 00:08
字数 492
阅读 11
收藏 0

    

方式一:继承 Thread 接口   

1. 效果

2.代码

继承Thread类的类代码

package cn.ma.thread01;
/**
 *   实现多线程的类 
 *           方法一:继承 Thread类
 */

public class myThread extends Thread {
        @Override
        public void run() {
            
            for (int i = 0; i < 200; i++) {
    System.out.println(getName()+"--"+i);
            }
        }
}
测试类代码

package cn.ma.thread01;
/**
 *     多线程:
 *         进程:就是程序
 *         定义: 是在进程下面同时可以执行多条路线
 *     如何实现多线程:
 *         方法1: 继承Thread 类
 *         方法2:实现   implements Runnable 接口
 */
public class ThreadTest {
    public static void main(String[] args) {
         myThread mt = new myThread();//线程1 对象
         myThread mt2 = new myThread();//线程2 对象
         myThread mt3 = new myThread();//线程 3 对象
         
         // 分别调用线程1 2 3 的start方法 开启线程
         mt.start();
         mt2.start();
         mt3.start();
         mt.setName("线程一:");
         mt2.setName("线程二:");
         mt3.setName("线程三:");
         //获取当前线程
 System.err.println(Thread.currentThread().getName());
 //获取当先线程级别     默认是 5
 System.out.println(mt.getPriority());
 System.out.println(mt2.getPriority());
 System.out.println(mt3.getPriority());
 // 设置 线程级别   范围在    0---10  超过报错
 //mt.setPriority(11);//会报错的   java.lang.IllegalArgumentException
 mt2.setPriority(1);
 mt3.setPriority(6);
 System.out.println("线程一级别:"+mt.getPriority());
 System.out.println("线程二级别:"+mt2.getPriority());
 System.out.println("线程三级别:"+mt3.getPriority());
    }
}
 

方式二:(推荐)实现runnable接口

1.效果

2. 代码

实现Runnable接口的类代码

package cn.ma.thread02;
/**
 *实现多线程  方式二 :实现 runnable接口
 *        
 *         
 *
 */
public class MyThread  implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 200; i++) {
            if(Thread.currentThread().getName().equals("线程一")){
                System.err.println(Thread.currentThread().getName()+"-----"+i);
            }else{
                System.out.println(Thread.currentThread().getName()+"-----"+i);
            }
            
        }
        
        
    }

}
 

测试部部分代码

package cn.ma.thread02;
/**
 *  测试 多线程实现方式二:
 *                实现runnable接口 
 *
 */
public class Test {
        public static void main(String[] args) {
            //这里只 造一个对象   好处实现资源共享
             MyThread my = new MyThread();
             
             
             Thread t1 = new Thread(my);//将类对象放到 线程中
             Thread t2 = new Thread(my);
             
             //给线程起名字
             t1.setName("线程一");
             t2.setName("线程二");
             //启动线程
             t1.start();
             t2.start();
             
        }
}
 

 

© 著作权归作者所有

Lucky_Me
粉丝 17
博文 234
码字总数 89927
作品 0
美国
私信 提问
java实现多线程两种基本方式

我们在开发当中经常会使用到多线程,这里我们来写两个小案例通过最基本的两种方式继承Thread类或实现Runnable接口来实现一个多线程。 继承Thread类 我们可以通过继承Thread类,并重写run()方...

王子城
2018/11/13
50
0
Java 多线程学习(1)——实现多线程的两种方式Thread/Runnable

版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:http://blog.csdn.net/huqigang,内容如有错误,欢迎留言指出,谢谢! https://blog.csdn.net/huqigang/article/details/7...

胡了了
2018/03/07
0
0
lock和wait+signal

lock和wait+signal 在编程中,我们经常使用多线程来提升性能,所以这就涉及到互斥和同步的问题了。而在编程中,我们一般都是通过如下方式来完成多线程的互斥和同步: lock | unlock signal + ...

精通吹水
2016/04/15
373
0
Java多线程基础篇(02)-多线程的实现

1.概要 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后...

kukudeku
2016/09/19
105
0
多线程学习笔记(一)

一 . 使用多线程的优点 可以在同一时间内运行更多不同种类的任务 注: 多线程是异步的,即代码顺序不一定是执行顺序,线程被调用的时机是随机的 二 . 实现多线程的方法 实现多线程的方法主要有两...

scymore
2016/08/26
32
2

没有更多内容

加载失败,请刷新页面

加载更多

自定义ApiBoot Logging链路以及单元ID生成策略

ApiBoot Logging会为每一个请求都对应创建链路编号(TraceID)以及单元编号(SpanID),用于归类每一次请求日志,通过一个链路下日志单元的Parent SpanID可以进行上下级关系的梳理。 前文回顾...

恒宇少年
17分钟前
6
0
浅谈 Application 和 activity

对于 在 Application初始化一些变量,为什么不可以放在activity 或者其他的组件里呢? 这里就根据个人的理解来讲述一下,欢迎补充指正。 首先 activity 是以栈的形式出现,一个app应用会有多...

MrLins
17分钟前
4
0
Allegro的脚本文件内容里都有哪些

小伙伴们在使用Allegro的时候是否经常用到脚本文件夹呢?scr的用法其实可真不简单。。。 首先脚本文件的运行模式就存在很多种,比如不提示错误信息,不弹出确认对画框(这样很有利于我们执行...

demyar
18分钟前
11
0
微信升级外链管理规范,「砍一刀帮我加速」要被禁止了

原创: 蒋鸿昌 首发:「知晓程序」公众号 - 最好的微信新商业媒体 几天前,知名互联网评论人阑夕模仿皮尤研究中心(Pew Research Center)在美国做的互联网通识调查问卷,做了一份中文版问卷...

知晓云
19分钟前
7
0
CentOS 7接投影仪

我将一台安装着CentOS 7图形界面的惠普笔记本电脑当桌面使用。最近,想要连接投影仪时却遇到了问题。笔记本有一个HDMI接口。我买了一个HDMI---->VGA的转接线,连上笔记本电脑后,屏幕一直在闪...

大别阿郎
22分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部