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

示例如下

package com.thread;
/**
 * 1:多线程实例练习
 * @author biexiansheng
 *
 */
public class ThreadTest1 extends Thread{

//多线程的实现都是在run()方法中实现的
    public void run(){
        System.out.println(getName()+"登上舞台");
        int count=0;//定义一个变量
        while(count<=100){
            System.out.println(getName()+"登上"+count+"次舞台");
            count++;
            if(count%10==0){
                try {
                    Thread.sleep(2000);//捕获异常,休眠2秒
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }//
            }
        }
        System.out.println(getName()+"走下舞台");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Thread t=new ThreadTest1();
        t.setName("Mr.Thread");
        t.start();
        //new ThreadTest1().start();
        
        //实现Runnable接口
        Thread t1=new Thread(new RunnableTest(),"Ms.Runnable");
        t1.start();
    }
}

class RunnableTest implements Runnable{
//写完上一句,类名报错,说明实现一个接口,就要实现这个接口内的方法
    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println(Thread.currentThread().getName()+"走上了舞台");
        //Runnable接口实现getName必须通过线程的currentThread()方法得到
        int count=0;//定义一个变量
        while(count<=100){
            System.out.println(Thread.currentThread().getName()+"登上"+count+"次舞台");
            count++;
            if(count%10==0){
                try {
                    Thread.sleep(2000);//捕获异常,休眠2秒
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }//
            }
        }
        System.out.println(Thread.currentThread().getName()+"走下舞台");
    
    }
    
}

JAVA实现多线程入门的更多相关文章

  1. 【Java】多线程入门

    Java多线程学习(入门) 前言 目前对于线程的了解仅仅停留在学习python的threading库,很多线程的概念没有真正弄清楚,所以选择来系统性的学习多线程.那么这次选择的是Java的多线程学习, ...

  2. java中多线程入门有趣介绍

    我们在网上可以看到所有有关于java的线程的基本概念的很多解释,不乏有很多详细经典的解释和代码解说.但是我们的很多初学者看完不能有一个直观的印象,特别是一些没有编程基础的学习者,很多时候要花很多时间去 ...

  3. (转载)Java多线程入门理解

    转载出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更 ...

  4. java多线程入门学习(一)

    java多线程入门学习(一) 一.java多线程之前 进程:每一个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销.一个进程包括1--n个线程.     线程:同一类线程共享代码 ...

  5. Java的多线程 简单入门

    Java的多线程 简单入门 首先能够先搞清楚什么是程序.进程.线程,以及它们之间的关系: 定义: 一 程序仅仅是一组指令的有序集合.它是静态的 二 进程是具有一定独立功能的程序关于某个数据集合上的一次 ...

  6. Java多线程学习(一)Java多线程入门

    转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79640870 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...

  7. java多线程入门

    一.认识多任务.多进程.单线程.多线程 要认识多线程就要从操作系统的原理说起.   以前古老的DOS操作系统(V 6.22)是单任务的,还没有线程的概念,系统在每次只能做一件事情.比如你在copy东西 ...

  8. Java多线程入门及实战

    基本概念: 1: 程序 2 进程 3 线程 4 进程和线程的区别 5 进程和程序的区别 Java实现多线程的方法: 1 继承Thread 2 实现Runable 3 实现callable 4 线程池的 ...

  9. Java 服务端入门和进阶指南

    作者:谢龙 链接:https://www.zhihu.com/question/29581524/answer/44872235 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 现在互联网上资 ...

随机推荐

  1. 纯手工打造(不使用IDE)java web 项目

    必备环境 1.编译器:jdk 2.web服务器:tomcat 3.文本编辑器:sublime,编写java文件和jsp文件,没有的话用记事本也行. 一.建立工程目录结构,如下图 在操作系统下完成即可, ...

  2. poj 2891 Strange Way to Express Integers (非互质的中国剩余定理)

    Strange Way to Express Integers Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 9472   ...

  3. canvas 画六边形

    <section class="m1-c"> <div class="m1-t clearfix"> <ul> <li ...

  4. 统计学习方法 AdaBoost

    提升方法的基本思路 在概率近似正确(probably approximately correct,PAC)学习的框架中, 一个概念(一个类),如果存在一个多项式的学习算法能够学习它,并且正确率很高,那 ...

  5. 20145225 《Java程序设计》 第3周学习总结

    20145225<Java程序设计> 第3周学习总结 教材学习内容总结 4.1类与对象 相当于设计图纸,用"new"创建的对象,就是依据设计图做成的成品 . 例(定义C ...

  6. WebForm和WinForm取当前根目录的通用的方法[转载]

    转自:WebForm和WinForm取当前根目录的通用的方法 某些环境下用 System.Web.HttpContext.Current.Server.MapPath 取不到目录. 可以用下面两个方法 ...

  7. 转自知乎:GitHub基本功能

    作者:Fadeoc Khaos 链接:https://www.zhihu.com/question/20070065 来源:知乎 著作权归作者所有Github的基本功能: Repository:你和我 ...

  8. 进程调度算法Linux进程调度算法

    这次介绍一下操作系统的进程调度算法 操作系统的调度分为三种:1.远程调度(创建新进程):2.中程调度(交换功能的一部分):3.短程调度(下次执行哪个进程) 这次讲述的就是短程调度,可以简单的看作咱们平 ...

  9. hdoj 2544最短路

    Problem Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要 ...

  10. Unity3D 中 用quaternion 来对一个坐标点进行旋转的初步体会

    在unity3d中,用四元数来表示旋转,四元数英文名叫quaternion . 比如 transform.rotation 就是一个四元数,其由四个部分组成 Quaternion = (xi + yj ...