corejava笔记1 多线程

来源:互联网 发布:java和android区别 编辑:程序博客网 时间:2024/03/29 15:08

Java支持多线程

JAVA 在语言级支持多线程。分配时间的仍然是OS。

 

一.  什么是线程:

线程是一个并发执行的顺序流,一个进程包括多个顺序执行流程,这种执行流程成为线程。线程是一个操作系统创建并维护的一个资源,对于操作系统来说Java虚拟机就是一个进程,对于单核的CPU的计算机来说某时刻只能有一个线程在运行。

一个Thread对象就表示一个进程。

 

线程有三部分组成:

(1). cpu费分配线程的时间片(cpu把某段时间分给一个线程,到时间后,其他线程执行)

(2). 线程代码(写在run()方法中)

(3). 线程数据

 

 

线程和进程的区别:

线程是独立的数据空间

进程是共享的数据空间

 

线程对象

线程对象存在于虚拟机对空间的一块连续的地址空间(静态)

 

线程与线程对象

线程是动态的,与线程对象是两回事。

线程对象能够像系统申请一个线程资源。

线程对象调用star()方法申请管理一个线程资源。

任务并发执行是一个宏观概念,微观上是串行的。

 

 

有两种线程的实现方式(或者叫有两种创建线程的方式):

 

第一种:创建一个类继承Thread类 

 

 

class MyThreadA extends Thread{

 

//重写run()方法(写上想要执行的方法)

 public void run() {

char d = 'A';

while(d<='Z') {

System.out.println("d= "+d);

for(int k=0; k<1000000; k++)

;//这样写可以实现空实现

d++;  

}

}

 

 

        //创建主方法(其实最好单独写个类)

public static void main(String[] args) {

 

//创建一个线程对象t1

Thread t1 = new MythreadA();

 

//执行此线程

t1.start();

}

 

}

 

 

第二种:创建一个类实现Runnable接口

 

class MyThreadB implements Runnable{

 

 

 

//重写run()方法(写上想要执行的方法)

      public void run() {

             char d = 'A';

     while(d<='Z') {

             System.out.println("d= "+d);

                 for(int k=0; k<1000000; k++)

;

d++;  

             }

}

 

 

public static void main(String[] args) {

 

Runnable target = new MyThread();

Thread t2 = new Thread(target);

 

t2.start();//启动线程

}

 

}


 

线程的七种状态:

原创粉丝点击