1.进程:
有两种方法可以创建一个线程类:
(1)让我们的类继承Thread类:
步骤:
第一步:让自定义类继承Thread类
第二步:复写Thread类中run方法
目的:将自定义代码存储在run方法中,让线程运行
第三步:调用自定义线程对象的start()方法
该方法有两个作用:一是启动线程,二是执行run方法
注意:千万不要主动去调用run方法
不可以让一个线程对象多次启动(也就是一个线程对象只能调用一次start()方法
thread-i表示,i从0开始的。
有两种方法:一种是通过在构造方法中传递参数,但必须要提供一个有参数的构造方法
而且在该构造方法中使用super(线程名称);把要设置的线程名称作为super的参数传递个Thread
父类的构造方法,然后通过getName()方法来获取
第二种可以直接通过自定义线程对象的setName()方法来设置线程名称
6.Thread.sleep(毫秒数):让线程休息一会
该方法的作用是让线程从运行状态到 冻结状态(被放在线程的等待池中),但休息的毫秒结束后
(1)第一步:让我们的类实现Runnable接口
(2)第二步:复写run()方法,把需要多线程执行的代码放到这个方法中来
(3)第三步:创建一个本类的对象
(4)通过Thread来创建一个线程对象,然后把第三步中创建的本类对象作为该线程构造方法的一个参数,如果要创建多个
线程的话,每一个线程都要传递该一个本类的对象
(5)分别调用Thread线程对象的start()方法
运行中的应用程序,每一个进程都有自己独立的内存空间,一个应用程序可以同时启动多个进程,如IE浏览器
2.线程:
线程是指一个进程中的指向流程,有时也称为执行情景,一个进程可以由多个线程组成每一个进程执行都有一个执行顺序,该执行顺序是一个执行的路径或者叫控制单元。
线程就是进程中的一个独立的控制单元,线程在控制着进程的执行一个进程中至少有一个线程,线程是属于进程的。执行一个JAVA程序默认会创建一个主线程也就是main线程
有两种方法可以创建一个线程类:
(1)让我们的类继承Thread类:
步骤:
第一步:让自定义类继承Thread类
第二步:复写Thread类中run方法
目的:将自定义代码存储在run方法中,让线程运行
第三步:调用自定义线程对象的start()方法
该方法有两个作用:一是启动线程,二是执行run方法
注意:千万不要主动去调用run方法
不可以让一个线程对象多次启动(也就是一个线程对象只能调用一次start()方法
我们不要轻易的去复写start()方法
thread-i表示,i从0开始的。
要想获取主线程的名称的可以通过Thread.currentThread().getName()来获得
有两种方法:一种是通过在构造方法中传递参数,但必须要提供一个有参数的构造方法
而且在该构造方法中使用super(线程名称);把要设置的线程名称作为super的参数传递个Thread
父类的构造方法,然后通过getName()方法来获取
第二种可以直接通过自定义线程对象的setName()方法来设置线程名称
6.Thread.sleep(毫秒数):让线程休息一会
该方法的作用是让线程从运行状态到 冻结状态(被放在线程的等待池中),但休息的毫秒结束后
线程又处于可运行状态了,随时可能被再次执行(只要获取到CPU的资源);
(1)第一步:让我们的类实现Runnable接口
(2)第二步:复写run()方法,把需要多线程执行的代码放到这个方法中来
(3)第三步:创建一个本类的对象
(4)通过Thread来创建一个线程对象,然后把第三步中创建的本类对象作为该线程构造方法的一个参数,如果要创建多个
线程的话,每一个线程都要传递该一个本类的对象
(5)分别调用Thread线程对象的start()方法