博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程
阅读量:5347 次
发布时间:2019-06-15

本文共 2735 字,大约阅读时间需要 9 分钟。

 

1 多线程的介绍

进程:进程指正在运行的程序。

线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。

总结一句话就是:一个程序运行后至少有一个进程,一个进程中可以包含多个线程

什么是多线程呢?即就是一个程序中有多个线程在同时执行。

关于主线程:

public class Demo01 {    //主线程    //程序从上往下执行的过程    //javac编译Demo01    //jvm运行main方法,找操作系统os,开启线程    //对于CPU来说就有了一条执行路径,运行方法main的这条路径有个名字    //叫“main”即 主线程    public static void main(String[] args) {        method01();        System.out.println(Math.abs(-9));    }    public static void method01(){        for(int i=0;i<10000;i++){            System.out.println(i);        }    }}

创建线程的方式一    Thread类

 

 构造方法有:

常用方法:

public class Demo02 {    //开线程的第一种方法    //1.定义Thread子类,继承Thread,重写run()方法    //2.在测试类中,创建Thread子类对象    //3.用子类对象调用start()方法,只能调用一次    public static void main(String[] args) {        //创建线程对象        ThreadDemo td=new ThreadDemo();        //开启线程        //start:1.让线程执行2.让jvm调用线程中的run方法        td.start();        for(int i=0;i<100;i++){            System.out.println("main..."+i);        }    }}

自定义线程类:

public class ThreadDemo extends Thread {    public ThreadDemo(){            }    public ThreadDemo(String name){        super(name);    }    public void run(){        System.out.println(getName());        for(int i=0;i<100;i++){            try {                sleep(1000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            System.out.println("thread..."+i);        }    }}

 

 3.获取线程名称

 Thread.currentThread()获取当前线程对象

 Thread.currentThread().getName();获取当前线程对象的名称

创建线程的方式二  实现Runnable接口

l  Thread类构造方法

 

public class MyRunnable implements Runnable {    public void run() {        for(int i=0;i<100;i++){            System.out.println(Thread.currentThread().getName()+"..."+i);        }    }    }
public class Demo01 {    //第二种创建线程的方式    //1.创建实现类,实现Runnable接口,重写run方法    //2.在测试类中创建实现类对象,创建线程对象    //将实现类对象传入线程对象的构造方法    //3.用线程对象开启线程    //好处:高内聚(自己的事情自己干),低耦合    public static void main(String[] args) {        //创建线程任务对象        MyRunnable mr=new MyRunnable();        //创建线程对象        Thread t1=new Thread(mr);        //开启线程        t1.start();        Thread t2=new Thread(mr);        t2.start();    }}

用一句话来创建线程并开启线程

public class Demo02 {    public static void main(String[] args) {/*        //多态定义一个runnable实现类对象        //来描述线程对象        Runnable r=new Runnable() {            public void run() {                System.out.println("这是重写后的run方法");            }        };        //创建线程        Thread t=new Thread(r);        t.start();*/        //一句话创建线程并开启线程        new Thread(new Runnable(){            public void run() {                System.out.println("run方法");            }        }).start();    }}

 

转载于:https://www.cnblogs.com/zzq123/p/10224981.html

你可能感兴趣的文章
[Hades_技术]哈迪斯初级技术应用
查看>>
SQLiteOpenHelper
查看>>
Luogu P1141 01迷宫【搜索/dfs】By cellur925
查看>>
js onclick事件传参
查看>>
WiCloud 商业Wi-Fi管理平台
查看>>
团队项目--未完待续
查看>>
双重标准,我该怎么解决
查看>>
python中的网页标签等字符处理
查看>>
Mybatis输入类型和结果类型
查看>>
Linux常用命令(五)
查看>>
Linux常用命令(四)
查看>>
Linux常用命令(六)
查看>>
Linux常用命令(六)
查看>>
Linux常用命令(八)
查看>>
Linux常用命令(七)
查看>>
Linux常用命令(九)
查看>>
Linux常用命令(十一)
查看>>
Linux常用命令(十)
查看>>
实验吧之这就是一个坑
查看>>
Linux常用命令(十二)
查看>>