java-多线程篇

1.线程和进程的概念

1.1.进程(Process):拥有独立的内存空间,每个独立执行的程序称为进程
?1.2.线程(Thread):线程是一个程序内部的一条执行路径,Java虚拟机允许应用程序并发地运行多个执行线程
?1.3.线程和进程的区别
           每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销大
           线程: 同一进程内的线程共享代码和数据空间,线程切换的开销小
           多进程: 在操作系统中能同时运行多个任务(程序)
           多线程: 在同一应用程序中多条执行路径同时执行

2.线程的创建与启动 

第一种:继承Thread类,重写run方法

第二种:实现Runnable接口,重写run方法

3.两种创建方式的比较  
?3.1使用Runnable接口
             还可以从其他类继承;
             保持程序风格的一致性。
?3.2直接继承Thread类
             不能再从其他类继承;
             编写简单,可以直接操纵线程
?使用实现Runnable接口的方式创建线程时可以为相同程序代码的多个线程提供共享的数据。

4.线程小结
?4.1.Java的线程是通过java.lang.Thread类来实现的。
?4.2.当程序启动运行时,JVM会产生一个线程(主线程),主方法(main方法)就是在这个线程上运行的。
?4.3.可以通过创建Thread的实例来创建新的线程。
         a.每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。
         b.通过调用Thread类的start()方法来启动一个线程。线程进入Runnable(可运行)状态,它将向线程

调度器注册这个线程。
         c.调用start()方法并不一定马上会执行这个线程,正如上面所说,它只是进入Runnable 而不是Running。
? 注意,不要直接在程序中调用线程的run()方法。

5.线程的基本使用方法   

时间: 2024-10-25 04:21:57

java-多线程篇的相关文章

黑马程序员-Java多线程篇《四》

                         ------- android培训.java培训.期待与您交流! ---------- 1.线程和进程的概念 1.1.进程(Process):拥有独立的内存空间,每个独立执行的程序称为进程   1.2.线程(Thread):线程是一个程序内部的一条执行路径,Java虚拟机允许应用程序并发地运行多个执行线程   1.3.线程和进程的区别           每个进程都有独立的代码和数据空间(进程上下文),进程间的切换开销大           线程

第12篇-JAVA 多线程

第12篇-JAVA 多线程 每篇一句 :不要只看到艰难,要看艰难后面的胜利 初学心得: 敢于尝试,就等于你已经向成功迈出了第一步 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-20| JAVA 多线程 ] 1.进程与线程 1.什么是进程 程序是指令和数据的有序的集合,其本身没有任何运行的含义,是一个静态的概念 进程是一个具有一定独立功能的程序,一个实体 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程 当一个程序运行时,内部可

Java总结篇系列:Java多线程(三)

一.一个典型的Java线程安全例子 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 Account account = new Account("123456", 1000); 5 DrawMoneyRunnable drawMoneyRunnable = new DrawMoneyRunnable(account, 700); 6 Thread myThread1 = new Thr

Java总结篇系列:Java多线程(二)

四.Java多线程的阻塞状态与线程控制 上文已经提到Java阻塞的几种具体类型.下面分别看下引起Java线程阻塞的主要方法. 1.join() join -- 让一个线程等待另一个线程完成才继续执行.如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行. 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 5 MyRunnable myRunna

带你玩转java多线程系列 “道篇” 多线程的优势及利用util.concurrent包测试单核多核下多线程的效率

java多线程 “道篇” - 多线程的优势及用concurrent包测试单核多核下多线程的效率 1 超哥对于多线程自己的理解 2 测试代码 3 CountDownLatch这个同步辅助类科普 4 如何把电脑设置成单核 5 测试结果 1 超哥对于多线程自己的理解 超哥的理解:对于多线程,无非是对于顺序执行下任务的一种抽取和封装,将原来顺序执行的任务单独拿出来放到线程类的run方法中,通过线程类的start方法进行执行,对于多线程访问共同资源时,我们需要加锁,也就是只有某个线程在拥有锁的时候,才能够

(转)java多线程的一篇好文

云转型基石ThinkServer特性解析 2013-05-29 10:47 佚名 importnew 字号:T | T 本文只是一些针对初学者或者新手的问题,如果你已经具备良好的基础,那么你可以跳过本文,直接尝试针对进阶水平的Java多线程编程问题及解答. AD:WOT2014:用户标签系统与用户数据化运营培训专场 英文原文:java-success.blogspot,编译:王晓杰 如果你即将去一家从事大型系统研发的公司进行Java面试,不可避免的会有多线程相关的问题.下面是一些针对初学者或者新

关于Java多线程的线程同步和线程通信的一些小问题(顺便分享几篇质量高的博文)

Java多线程的线程同步和线程通信的一些小问题(顺便分享几篇质量高的博文) 前言:在学习多线程时,遇到了一些问题,这里我将这些问题都分享出来,同时也分享了几篇其他博客主的博客,并且将我个人的理解也分享给大家. 一.对于线程同步和同步锁的理解(注:分享了三篇高质量的博客) 以下我精心的挑选了几篇博文,分别是关于对线程同步的理解和如何选择线程锁以及了解线程锁的作用范围. <一>线程同步锁的选择 1. 这里我推荐下Java代码质量改进之:同步对象的选择这篇博文. 2. 以上推荐的博文是以卖火车票为例

Java总结篇系列:Java多线程(一)

多线程作为Java中很重要的一个知识点,在此还是有必要总结一下的. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌握了.主要包括: Java线程具有五中基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnable):当调用线程对象的start()方法(t

Java多线程系列--“基础篇”01之 基本概念

多线程是Java中不可避免的一个重要主体.从本章开始,我们将展开对多线程的学 习.接下来的内容,是对“JDK中新增JUC包”之前的Java多线程内容的讲解,涉及到的内容包括,Object类中的wait(), notify()等接口:Thread类中的接口:synchronized关键字. 注:JUC包是指,Java.util.concurrent包,它是由Java大师Doug Lea完成并在JDK1.5版本添加到Java中的. 在进入后面章节的学习之前,先对了解一些多线程的相关概念.线程状态图

Java多线程学习篇(三)Lock

Lock 是Java多线程的一个同步机制,用来控制线程对共享资源的访问.线程在执行同步方法或者代码块之前必须先获得一个锁. Lock 的 lock() 和 unlock() 方法; lock():获得一个锁,如果锁不可用,则当前线程将因线程调度目的而被禁用,并在获得锁之前处于休眠状态. unlock():释放掉获得的锁. Lock的作用范围: 若 Lock 是静态的,则作用范围是整个类. public class Test { public static void main(String[] a