专栏首页别先生JAVA实现多线程入门

JAVA实现多线程入门

1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种机制被称为多线程

2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable接口

3:Thread类是java.lang包中的一个类,从这个类实例化的对象代表线程

4:完成线程真正功能的代码是放在run()方法中的,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread 类中的strat()方法执行线程,也就是调用run()方法。

 1 package com.thread;
 2 /**
 3  * 1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种
 4  * 机制被称为多线程
 5  * 2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable
 6  * 接口
 7  * 3:Thread泪时java.lang包中的一个类,从这个类实例化的对象代表线程
 8  * 4:完成线程真正功能的代码是放在run()方法中的,当一个泪继承Thread类后,就可以
 9  * 在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread
10  * 类中的strat()方法执行线程,也就是调用run()方法。
11  * @author biexiansheng
12  *
13  */
14 public class ThreadTest extends Thread {//指定类继承Thread类
15     
16     private int count=10;
17     public void run(){//重写run()方法
18         while(true){
19             System.out.print(count+" ");//打印count变量
20             if(--count==0){//使count变量自减,当自减为0时,退出循环
21                 return;
22             }
23         }
24     }
25     public static void main(String[] args) {
26         //new ThreadTest().start();
27         Thread t=new ThreadTest();//两种方法都可以实现线程运行
28         t.start();
29     }
30 }

示例如下

 1 package com.thread;
 2 /**
 3  * 1:多线程实例练习
 4  * @author biexiansheng
 5  *
 6  */
 7 public class ThreadTest1 extends Thread{
 8 
 9     //多线程的实现都是在run()方法中实现的
10     public void run(){
11         System.out.println(getName()+"登上舞台");
12         int count=0;//定义一个变量
13         while(count<=100){
14             System.out.println(getName()+"登上"+count+"次舞台");
15             count++;
16             if(count%10==0){
17                 try {
18                     Thread.sleep(2000);//捕获异常,休眠2秒
19                 } catch (InterruptedException e) {
20                     // TODO Auto-generated catch block
21                     e.printStackTrace();
22                 }//
23             }
24         }
25         System.out.println(getName()+"走下舞台");
26     }
27     public static void main(String[] args) {
28         // TODO Auto-generated method stub
29         Thread t=new ThreadTest1();
30         t.setName("Mr.Thread");
31         t.start();
32         //new ThreadTest1().start();
33         
34         //实现Runnable接口
35         Thread t1=new Thread(new RunnableTest(),"Ms.Runnable");
36         t1.start();
37     }
38 }
39 
40 class RunnableTest implements Runnable{
41 //写完上一句,类名报错,说明实现一个接口,就要实现这个接口内的方法
42     @Override
43     public void run() {
44         // TODO Auto-generated method stub
45         System.out.println(Thread.currentThread().getName()+"走上了舞台");
46         //Runnable接口实现getName必须通过线程的currentThread()方法得到
47         int count=0;//定义一个变量
48         while(count<=100){
49             System.out.println(Thread.currentThread().getName()+"登上"+count+"次舞台");
50             count++;
51             if(count%10==0){
52                 try {
53                     Thread.sleep(2000);//捕获异常,休眠2秒
54                 } catch (InterruptedException e) {
55                     // TODO Auto-generated catch block
56                     e.printStackTrace();
57                 }//
58             }
59         }
60         System.out.println(Thread.currentThread().getName()+"走下舞台");
61     
62     }
63     
64 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • jxl的使用总结(java操作excel)

    jxl.jar是通过java操作excel表格的工具类库; jxl.jar包:链接:http://pan.baidu.com/s/1o8qFJHw 密码:5jy...

    别先生
  • Idea的快捷键,瞎摸索,开心就好,哈哈哈

    前言:如果你有强迫症,换了一个编辑器,最痛苦莫过于快捷键,不顺手了。这里自己瞎摸索的快捷键,贴一下,这里主要以实际应用为主,因为大量介绍的网上已经很多很多,S...

    别先生
  • SpringBoot2.x|Thymeleaf页面不能正常载入css、js文件

    1、实现实现WebMvcConfig配置类可以解决页面不能加载css,js的问题;

    别先生
  • Java基础——多线程

      Java中多线程的应用是非常多的,我们在Java中又该如何去创建线程呢? http://www.jianshu.com/p/40d4c7aebd66 一、...

    mukekeheart
  • 实现多线程的三种方法

    Java虚拟机(JVM,是运行所有Java程序的抽象计算机,是Java语言的运行环境)允许应用程序并发地运行多个线程。在Java语言中,多线程的实现一般有以下三...

    崔笑颜
  • java并发基础篇(五): 创建线程的四种方式

    在详细了解这四种方法之前,先来理解一下为什么线程要这样创建:形象点来说,Thread是一个工人,run()方法里面的便是他的任务栏,这个任务栏默认是空的。当你想...

    好好学java
  • 【Java】基础32:一道面试题,弄懂线程的创建原理

    老实说,当我看到这个题目的时候,我的内心是拒绝的,有一种一拳打在棉花上,有力无处使的感觉。

    刘小爱
  • Java线程创建形式 Thread构造详解 多线程中篇(五)

    Thread作为线程的抽象,Thread的实例用于描述线程,对线程的操纵,就是对Thread实例对象的管理与控制。

    noteless
  • RNA-seq(6): reads计数,合并矩阵并进行注释

    小结 计数分为三个水平: gene-level, transcript-level, exon-usage-level 标准化方法: FPKM RPKM ...

    Y大宽
  • 微服务 API 网关 APISIX 发布 0.5 版本,达到可用状态

    APISIX (https://github.com/iresty/apisix) 是一个云原生、高性能、可扩展的微服务 API 网关。

    温铭@APISIX

扫码关注云+社区

领取腾讯云代金券