黑马程序员—多线程

进程:一个正在执行的程序。

线程:就是进程中一个独立的控制单元,线程在控制进程的执行,一个进程中至少有
一个线程。

主线程:JVM启动的时候会有一个进程java.exe,该进程中至少有一个负责java程序的执行
    而且这个线程运行的代码存在于main方法中,该线程称之位主线程。

创建线程的方式有两种:

方法一:

1.定义类继承Thread
2.复写Thread类中的run方法
 目的;将自定义代码存储在run方法中,让线程运行
3.调用线程的start方法
 该方法有两个作用:启动线程,调用run方法(存储要执行的代码)

问题1:为什么要覆盖run方法呢?

Thread类,对多线程进行了描述。多线程的每个线程要运行的代码都在Thread类中run()方法中,

我们继承了Tread类,想运行自定义的线程,就必须要有自己的代码。而自己的代码只有放在run()中

才可以被当做线程运行。所以只有覆盖run()方法。

方法二:步骤;
1.定义类实现Runnble接口
2.覆盖Runnable接口中的run方法 

3.通过Thread类建立线程对象
4.将Runnble接口的子类对象作为实际参数传递给Thread类的构造函数;
 为什么要将Runnable接口的子类对象传递给Thread的构造函数呢?  
  因为,Thread类要运行自定义run()的方法,而自定义的run方法所属的对象是Runnable接口的子类对象
  Thread的构造函数可以接收Runnable的子类。所以要让线程去执行我们自己的run方法,就将run()所属的
  对象传入。然后Thread会去调用对象中的run(),当然这就不是我们要管的了。
5.调用Thread类的start方法开启线程

  

黑马程序员—多线程,布布扣,bubuko.com

时间: 2024-10-28 19:55:51

黑马程序员—多线程的相关文章

黑马程序员 - 多线程

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 多线程进程:一个正在执行中的程序,每一个进行执行,都有一个执行顺序,该顺序就是一个执行路径,或者加一个执行单元线程:就是进程中的一个独立的执行路径,一个进程中至少有一个线程.java vm启动的时候会有一个进程java.exe.该进程中至少一个线程负责执行java程序的执行,而且这个线程运行的代码存在于main方法中.该线程称之为主线程.扩展:其中更细节说明java vm启动不止一个线程,还有

黑马程序员——多线程

一.概述 (一)进程 正在执行中的程序,每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. (二)线程 进程中的一个独立的控制单元.线程在控制着进程的执行.一个进程中至少有一个线程.只要进程中有一个线程在执行,进程就不会结束. (三)多线程 在java虚拟机启动的时候会有一个java.exe的执行程序,也就是一个进程.该进程中至少有一个线程负责java程序的执行.而且这个线程运行的代码存在于main方法中.该线程称之为主线程.JVM启动除了执行一个主线程,还有负责垃圾回收

黑马程序员——多线程总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 多线程和进程的区别? 简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高. 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程

黑马程序员------多线程(一)

1.1多线程的概念 1.1.1 进程.线程.多进程的概念进程:是一个正在执行中的程序. 每一个进程执行都有一个执行顺序.该顺序是一个执行路径,或者叫一个控制单元. 线程:就是进程中的一个独立的控制单元. 线程在控制着进程的执行. 一个进程中至少有一个线程. Java VM 启动的时候会有一个进程java.exe. 该进程中至少一个线程负责java程序的执行.而且这个线程运行的代码存在于main方法中.该线程称之为主线程. 扩展:其实更细节说明jvm,jvm启动不止一个线程,还有负责垃圾回收机制的

黑马程序员——多线程进阶(一)

----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 多线程与CPU和内存的关系   来自百度知道. 这个回答我认为是很好的比喻了. CPU对进程操作时不是同时进行,我们知道windows操作系统里面有许多的进程,而CPU是一个一个的来操作这些进程的,当然,多核CPU就可以实现同时操作这些进程,所以为什么CPU核数越多电脑速度越快就是这样,但是内存是一个瓶颈,不能超过这个内存数. 根据上面说的CPU是一个一个的来控制着进程的(

黑马程序员----多线程基础

/*** @author Administrator** @description Java多线程编程入门测试类* @history*/// 方法一.继承线程类Threadclass MyThread extends Thread{public MyThread(String threadName){ // 设置当前线程的名称currentThread().setName(threadName);}public void run(){System.out.println(Thread.curre

黑马程序员——多线程下的单例设计模式的安全问题

//多线程下的单例设计模式 class Sing { //饿汉式不存在安全问题,因为其不是线程同步的 private static Sing s = new Sing(); private Sing(){} public static Sing getInstance() { return s; } } class Single { private static Single s = null; private Single(){} public static Single getInstanc

黑马程序员--多线程同步的一层对象/二层对象/三层对象写法对比

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 前言: 在面向对象的思想下,线程的写法根据要创建的对象层级可以分为三种写法: 1,一层对象写法:采用extends Thread,复写父类的run()方法,直接建立一个线程实例对象的方式,这种方式简单,适用于单任务的单线程需求.在此不做过多讨论; 2,二层对象写法:采用implements Runnable接口,复写接口的run()方法,得到二级对象--通常称为任务对象;再通过将二级对象传入(

黑马程序员--多线程(二)

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流!------- 多线程的安全问题 产生原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来,导致了共享数据错误. 解决办法:对多条操作共享数据的语句只能让一个线程都执行完,在执行过程中其他线程不可以