程序、进程、线程的区别:
线程 -程序:为解决某种问题,使用计算机语言编写的一系列指令(代码)的集合,本章中的程序,特指的是静态的,安装在硬盘上代码集合 -进程:运行中的程序(被加载到内存中),是操作系统进行资源分配的最小单位 -线程:进程可以进一步细化为线程,是进程内一个最小执行单元,是cpu进行任务调度的最小单位 *运行中的QQ,就是一个进程,操作系统会为这个进程分配内存资源,一个聊天窗口就认为是一个线程,多个聊天窗口可以同时被cpu执行 但是,这多个聊天窗口可以同时被cpu执行,但是这些聊天窗口属于进程,线程是属于进程的。 *进程和线程的关系 -进程和线程属于包含与被包含的卦象你,一个进程内可以有多个线程 -一个线程只能属于一个进程,县城不能脱离进程而独立运行 每一个进程至少包含一个线程(即主线程),Java中的main方法 就是用来启动主线程的。 -在主线程中可以创造并启动其他线程 -所有线程都共享进程内存资源
创建线程:
package XCDemo.Demo_1;
public class MyThread extends java.lang.Thread {
/*
创建线程方法一:
MyThread 继承 Thread(线程)
重写Thread类中的run()方法,在run()方法中来编写我们需要执行的任务代码
*/
@Override
public void run() {
for (int i = 0; i < 10000; i++) {
System.out.println("MyThread"+i);
}
}
}
package XCDemo.Demo_1;
import XCDemo.Demo_1.MyThread;
public class test {
public static void main(String[] args) {
MyThread myThread=new MyThread();
myThread.start();
for (int i = 0; i < 10000; i++) {
System.out.println("main"+i);
}
}
}
Java中创建线程: -方式一: 继承Thread类的方式,重写run() 创建自定义的线程类对象,调用start()启动线程 -方式二: 类 实现Runable接口,把这个类不能称为线程,只能称之为任务类 重写run()方法 new Thread(任务对象); 调用线程对象的start(),启动线程 *以后使用第二种方法多一些: —1.避免了单继承的局限性,因为Java是单继承的,继承了Thread类,就不能再继承其他类 -2.更适合多线程共享同一份资源的场景 Thread类常用的方法 -Thread表示线程,提供了很多的方法,来对线程进行控制 run();线程要执行的任务 start();启动Java线程 -构造方法: new Thread(Runable runable);接收一个任务对象 new Thread(Runable runable,String name); setName("我的线程1");为线程设置名字 String getName();获得线程的名字 Thread.currentThread();在任务中获得当前正在执行的线程 setPriority(int p);1-10之间,默认值为5 getPriority();获得优先级 sleep(Long);让线程睡眠指定时间