多线程一(Thread类)

/*

 * 1.进程:是一个正在执行中的程序。


 * 2.每一个进程执行都有一个执行顺序,该顺序都有一个执行路径,或者叫一个控制单元。


 * 3.线程:进程中的一个独立的控制单元,线程控制着进程的执行。


 * 4.一个进程中至少有一个线程。


 * 5.Java VM启动的时候会有一个进程java.exe。


 * 6.该进程中至少有一个线程负责java程序的执行。而且这个线程运行的代码存在于main方法中,该线程称之为主线程。


 * 7.扩展:JVM启动不止一个线程,还有负责垃圾回收机制的线程。


 * 8.多线程存在的意义:提高程序执行的效率。 


 * 9.如何在自定义的代码中,自定义一个线程呢?

 * 通过对api的查找,java已经提供了对线程这类食物的描述,就是Thread类。


 * 10.创建线程的第一种方式:继承Thread类.

 * 步骤:
 * 1.定义类继承Thread类。
 * 2.复写Thread类中run方法:为了将自定义的代码存储在run方法中,让线程运行。

 * 3.调用线程的start方法,该方法有两个作用:a.启动线程。b.调用run方法。


 * 发现:运行结果每一次都不同,因为多个线程获取cpu的执行权,cpu执行到谁,谁就执行。
 * 明确一点,在某一时刻,只能有一个程序在运行。(多核除外)
 * cpu在做着快速的切换,以达到看上去是同时运行效果。
 * 我们可以形象把多线程的运行行为在互相抢夺cpu的执行权。

 * 这是多线程的一个特性:随机性,谁抢到谁执行,至于执行多长,cpu说的算。


 * 11.为什么要覆盖run方法呢?
 * Thread类用于描述线程。
 * 该类就定义了一个功能,用于存储线程要运行的代码,该存储功能就是run方法。

 * 也就是说Thread类中的run方法,用于存储线程要运行的代码。


 * 12.线程有自己的默认的名称,Thread-编号  该编号从0开始,通过getName()方法获得对象名。
 * 通过this或者静态方法currentThread()方法获得当前对象。
 * 设置线程名称:setName方法或者构造函数。

 */


class Demo extends Thread
{
Demo (String name)
{
super(name);
}
public void run()
{
for(int x=0;x<60;x++)
System.out.println(Thread.currentThread().getName()+"---demo run-----"+x);
}
}
public class ThreadDemo {
public static void main(String args[])
{

Demo d=new Demo("one");
Demo d1=new Demo("two");//创建好一个线程。
d.start();//开启线程,并执行run方法。
d1.start();
// d.run();//仅仅是对象调用方法,线程创建了,自定义线程并没有执行,而是主线程在运行run方法。
for(int x=0;x<60;x++)
System.out.println("hello world!--"+x);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值