`
holoblog
  • 浏览: 1260458 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:19487
文章分类
社区版块
存档分类
最新评论

Java高级(线程)【Day11】

 
阅读更多

目标
进一步了解线程
掌握如何编写线程代码
掌握线程的状态以及状态之间的转换(线程常用方法)
线程使用代码

1、进一步了解线程
到镇上找一个饭店:湘菜馆、川菜馆、豫菜馆、土家菜馆、、、、、

把每个饭馆中吃饭的过程看做一个进程完成的整个操作。

把进入一个川菜馆吃饭的进程,拆分成多个线程:
(1)找位置(资源)
(2)点菜
(3)上菜
(4)吃饭
(5)结账

顾客、服务员、厨师、收银员
顾客(88) 独立的线程对象
服务员(10) 线程调度程序(操作系统、Java虚拟机)
厨师(5) Java虚拟机
收银员(1)


线程:
(1)轻量级的进程;
(2)线程可以通过Java 编程,人为控制

2、掌握如何编写线程代码
(1)继承 Thread 类,重写 run(){} 方法
(2)实现 Runnable 接口,实现 run(){} 方法
(3)启动线程,必须通过线程对象,调用 t.start() 方法
该方法会自动调用 run(){} 方法中的代码来运行。

线程控制方法:
t.isAlive() 线程是否处于活动状态
t.getPriority() 得到当前线程的优先级
t.setPriority() 设置当前线程的优先级
static int MAX_PRIORITY 10
线程可以具有的最高优先级。
static int MIN_PRIORITY 1
线程可以具有的最低优先级。
static int NORM_PRIORITY 5
分配给线程的默认优先级。


Thread.currentThread() 得到当前正在使用 CPU 的线程
getName() 得到线程的名称
Thread.currentThread().getName()
t.sleep(long 毫秒) 使当前正在使用 CPU 的线程睡眠一段时间
t.wait() 使当前正在使用 CPU 的线程等待
t.join() 使当前正在使用 CPU 的线程等待,等合并的
线程执行完毕,再执行当前线程
t.yield() 使当前正在使用 CPU 的线程让出 CPU
t.notify() 当前线程使用 CPU 完毕,通知下一个等待中的线程
t.notifyAll() 当前线程使用 CPU 完毕,通知所有等待中的线程
t.interrupt() 中断线程。


3、掌握线程的状态以及状态之间的转换(线程常用方法)
同步状态
一个银行账户:有卡、有存折,如果有余额 1000 块,
两个人同时使用卡、存折在两个地方取钱。

当一边在操作的时候,需要把账户信息加锁,只为一边
服务。

4、线程使用代码

分享到:
评论

相关推荐

    java多线程代码笔记

    在`day24_Thread`和`day23_Thread`的文件中,可能涵盖了线程的优先级、守护线程、中断、线程池的使用等更多主题。优先级可以使用`setPriority(int priority)`方法设置,`Thread.currentThread().isDaemon()`检查当前...

    达内Java培训-CoreJava全程笔记(WORD唐亮版)

    CoreJava DAY11 内部类 36 CoreJava DAY12 集合 List 40 CoreJava DAY13 集合 Set 46 CoreJava DAY14 集合 Map 49 CoreJava DAY15 异常、断言 52 CoreJava DAY16 反射、注释 57 CoreJava DAY17 GUI 64 CoreJava DAY...

    Java_day17上课资料.zip

    Java编程语言是软件开发领域广泛使用的高级编程语言,尤其在企业级应用中占据了主导地位。今天我们将深入探讨Java_day17课程中涵盖的关键知识点。在这个压缩包“Java_day17上课资料.zip”中,我们可以期待找到与Java...

    多线程-day01.docx

    线程通信是指线程间的数据交换,Java 提供了多种机制,如 wait()、notify() 和 notifyAll() 方法,以及 `java.util.concurrent` 包下的 `BlockingQueue` 和 `Phaser` 等高级工具,用于协调线程间的操作顺序和数据...

    多线程,day2,B站狂神,代码Lesson.rar

    此外,Java并发库提供了一些高级工具,如Semaphore(信号量)、CyclicBarrier(回环屏障)、CountDownLatch(计数器门锁)和ExecutorService,它们能帮助开发者更有效地管理和控制线程。 Lesson文件可能包含了这些概念的...

    day11 java

    【Java线程详解】 在Java编程中,线程是程序执行的基本单位,它允许一个程序在单个进程中并发地执行多个任务。...在实际编程中,还需考虑线程同步、锁机制等高级主题,以确保线程安全和避免潜在的并发问题。

    达内 CoreJava老师笔记汇总

    CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 集合 Map 92 CoreJava DAY15 异常、断言 98 CoreJava DAY16 反射、注释 108 CoreJava DAY17 GUI 120 CoreJava ...

    java\CoreJava笔记\CoreJAVA_day01

    Java是一门广泛应用于企业级开发、移动应用及互联网领域的高级编程语言。CoreJava是Java的基础,涵盖了Java Standard Edition (J2SE)的主要内容,包括基本语法、面向对象编程(OO)原则、核心类库的使用等。在学习...

    我的java学习日志day01

    跟随这样的机构,你可以系统地学习Java,从基础知识到高级特性,逐步掌握编程技能。记得积极参与课堂讨论,动手实践,不断巩固和提升。 以上就是Java学习日志Day01的主要内容。在后续的学习中,我们会逐步深入到更...

    27天成为Java大神之Day01

    在Java学习的旅程中,第一天通常是打基础的关键时刻。"27天成为Java大神之Day01"的课程设计旨在快速引导初学...请持续关注后续的更新,以获取更高级的Java知识,如集合框架、多线程、网络编程等,逐步成长为Java大神。

    27天成为Java大神之Day02

    在Java培训班中,你将逐步掌握更多高级主题,如面向对象编程(类、对象、继承、多态)、异常处理、集合框架、I/O流、线程编程等,最终成为一名真正的Java大神。一起加油,不断探索,Java的世界等待着我们去征服!

    day11-多线程(1)1

    在Java编程中,多线程是一项重要的技术,它允许程序同时...在实际编程中,还需要注意线程安全、同步机制等高级话题,以防止数据竞争和其他并发问题。学习并熟练掌握这些知识,对于提升Java程序员的专业技能至关重要。

    Java基础_day01

    10. **多线程**:Java内置对多线程的支持,通过Thread类或实现Runnable接口创建线程,理解和掌握并发控制(如synchronized关键字、wait/notify机制)是提高程序效率的关键。 以上就是"Java基础_day01"可能涵盖的...

    day01-Java入门

    Java是一种广泛使用的高级编程语言,尤其适合于构建企业级应用程序、桌面应用、移动应用(尤其是Android平台)以及Web应用。对于初学者来说,Java具有良好的可读性和简洁的语法,使得它成为学习编程的理想选择。 1....

    Javaday02训练

    Java Day02训练是针对Java初学者或有一定基础的学习者设计的一次深入学习活动,旨在强化和...在后续的学习中,你还将接触到异常处理、集合框架、IO流、多线程、网络编程等更高级的主题,逐步成为一名熟练的Java开发者。

    安卓开发Java培训day03

    "安卓开发Java培训day03"的课程内容可能涵盖了一些进阶的Java概念和技术,这些对于一个安卓开发者来说是必须掌握的。下面将详细介绍Java在安卓开发中的重要性以及可能涉及的知识点。 首先,Java是安卓应用的主要...

    day13javacode

    5. **线程**:Java支持多线程编程,了解如何创建和管理线程,以及同步和互斥的概念,是提升程序效率的重要手段。 6. **接口与抽象类**:学习何时使用接口,何时使用抽象类,以及它们在设计模式中的角色。 7. **...

    Java_day07上课资料.zip

    Java编程语言是软件开发领域广泛使用的高级编程语言,尤其在企业级应用中占据了主导地位。本资料"Java_day07上课资料.zip"是针对Java学习者的第七天课程内容,旨在帮助学员深入理解Java的核心概念和技术。配合提供的...

    Java_day22上课资料.zip

    本资料“Java_day22上课资料.zip”显然属于一个教学课程的一部分,旨在帮助学习者深入理解Java语言的核心概念和技术。从描述中的链接我们可以推测,这可能是一个在线教育平台的课程资源,通过视频讲解配合课件,为...

    java视频教程Day01 免费

    11. Multi-Thread(多线程) 12. I/O and File (输入/输出流及文件) 13. Networking (网络编程) 以上教学过程中贯穿一个银行项目,根据每天所学的东西不断完善 J2EE部分 14. JDBC Overview and Using JDBC ...

Global site tag (gtag.js) - Google Analytics