• 欢迎光临~

线程基础

开发技术 开发技术 2022-10-19 次浏览

进程:是系统进行资源分配和调用最小单位,每个进程都有自己独立系统资源和内存空间(正在进行的程序)

  CPU时间片:系统资源和内存空间的简称

线程:进程中的一条执行路线,每个线程执行一个任务,线程是CPU调度最小单位。同一个进程中线程是共享

  这个进程中系统资源和内存空间。

进程线程关系:一个进程中可以有一到多个线程,一个线程只能属于一个进程,同一个进程中多个线程是

          互抢资源竞争关系。

线程基础

实现线程:有三种实现方式,前两种公司常用,第三种基本不用.

1:继承Thread类,来实现线程

 1 public class MyThread extends Thread{
 2         /**
 3          * 重写父类任务方法
 4          */
 5         @Override
 6         public void run() {
 7                 for (int i = 1; i <=10; i++) {
 8                         System.out.println(Thread.currentThread().getName()+":"+i);
 9                 }
10         }
11 }
12 public static void main(String[] args) {
13                 //创建线程对象
14                 MyThread t1=new MyThread();
15                 MyThread t2=new MyThread();
16                 
17                 //启动线程
18                 t1.start();
19                 t2.start();
20         }

2:实现Runnable接口,实现线程.

 1 public class MyRunnable implements Runnable{
 2         /**
 3          * 重写父接口中任务方法
 4          */
 5         @Override
 6         public void run() {
 7                 for (int i = 1; i <=10; i++) {
 8                         System.out.println(Thread.currentThread().getName()+":"+i);
 9                 }
10         }
11 }
12 public static void main(String[] args) {
13                 //创建任务对象
14                 MyRunnable m1=new MyRunnable();
15                 MyRunnable m2=new MyRunnable();
16                 
17                 //创建线程对象,将任务对象作为构造方法参数传入
18                 Thread t1=new Thread(m1);
19                 Thread t2=new Thread(m2);
20                 
21                 //启动线程
22                 t1.start();
23                 t2.start();
24         }

3:实现Callable接口,实现线程(现在基本不用).

 1 public class MyCallable implements Callable{
 2         /**
 3          * 重写父接口中任务
 4          */
 5         @Override
 6         public Object call() throws Exception {
 7                 for (int i = 1; i <=10; i++) {
 8                         System.out.println(Thread.currentThread().getName()+":"+i);
 9                 }
10                 return null;
11         }
12 }
13         public static void main(String[] args) {
14                 //创建Callable对象
15                 MyCallable mc1=new MyCallable();
16                 MyCallable mc2=new MyCallable();
17                 
18                 //创建任务对象,将Callable对象作为构造方法参数
19                 FutureTask f1=new FutureTask(mc1);
20                 FutureTask f2=new FutureTask(mc2);
21                 
22                 //创建线程对象,将任务对象作为构造方法参数传入
23                 Thread t1=new Thread(f1);
24                 Thread t2=new Thread(f2);
25                 
26                 //启动线程
27                 t1.start();
28                 t2.start();
29         }

 

程序员灯塔
转载请注明原文链接:线程基础
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com