Java笔记之线程

简介: 缓冲流 集合 类和类的关系。。。 MVC分层架构设计思想线程 String家族 StringBuilder StringBuffer 集合家族 ArrayList Vector HashMap HashTable 程序 可以理解为是一组静态的代码 进程 正在进行的程序 静态的代码 运行起来 线程 正在执行程序中的小单元 聚餐 聚餐之前 班级大扫除 扫除需要分配任务 任务写在纸上 列一个清单 一声令下 开始扫除 进程 每一个同学都做自己的事情 并发执行 互相不影响

缓冲流  集合  类和类的关系。。。

   MVC分层架构设计思想

线程

   String家族

StringBuilder    StringBuffer

   集合家族

ArrayList          Vector

HashMap          HashTable

程序

 可以理解为是一组静态的代码

进程

 正在进行的程序 静态的代码  运行起来

线程

 正在执行程序中的小单元

聚餐

聚餐之前   班级大扫除

扫除需要分配任务 任务写在纸上  列一个清单

一声令下   开始扫除    进程

每一个同学都做自己的事情   并发执行   互相不影响

1.主线程   系统线程

2.用户线程   main

3.守护线程(精灵) GC

线程------操作系统级别  CPU

如何在Java中创建线程  让线程执行  多线程

掌握每一个线程的几种不同状态   及状态之间如何切换

 

new         start()       CPU分配run()       wait()    exception  over

创建线程------就绪状态------执行状态------等待/挂起------异常/消亡

            |                                          |

            |______________________________|

      notify/notifyAll

实现线程的过程

1.自己描述一个类

2.继承父类Thread

3.重写run方法

4.new一个线程对象  调用start()方法 让线程进入就绪状态

实现线程的过程

1.自己描述一个类

2.实现一个父接口Runnable

3.重写run方法

4.new一个线程对象  需要创建Thread将自己的对象包起来 然后调用start()

实现一个跑步的小例子

 多个人同时跑步

 苏炳添   博尔特   加特林

思考题--->扩展

字节型文件输入流

FileInputStream

read()   read(byte[])   close()   avaialbe()

skip(long count)

文件 100字节   5个线程对象 同时读

1从头--20    2跳过20读--40    3跳过40--60

微信抢红包例子

发送红包   5块钱  10个红包  随机(保证10个人都有 至少0.01)  集合里

多个线程 抢红包

Java中 继承  单继承

extends

Person extends Animal

模拟一个火车站售票小例子

1.车票   2.系统12306   3.窗口window 多线程

车票

   属性

 起始站

 终点站

 票价

系统

   属性

 集合

   方法

窗口

 是一个线程

 

利用Vector集合   集合本身就是线程安全

1.如何切换线程的不同状态

2.如果在设计中没有集合  我们自己想要控制线程安全

目录
相关文章
|
12天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
21天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?
|
8天前
|
安全 Java 开发者
深入解读JAVA多线程:wait()、notify()、notifyAll()的奥秘
在Java多线程编程中,`wait()`、`notify()`和`notifyAll()`方法是实现线程间通信和同步的关键机制。这些方法定义在`java.lang.Object`类中,每个Java对象都可以作为线程间通信的媒介。本文将详细解析这三个方法的使用方法和最佳实践,帮助开发者更高效地进行多线程编程。 示例代码展示了如何在同步方法中使用这些方法,确保线程安全和高效的通信。
28 9
|
11天前
|
存储 安全 Java
Java多线程编程的艺术:从基础到实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及其实现方式,旨在帮助开发者理解并掌握多线程编程的基本技能。文章首先概述了多线程的重要性和常见挑战,随后详细介绍了Java中创建和管理线程的两种主要方式:继承Thread类与实现Runnable接口。通过实例代码,本文展示了如何正确启动、运行及同步线程,以及如何处理线程间的通信与协作问题。最后,文章总结了多线程编程的最佳实践,为读者在实际项目中应用多线程技术提供了宝贵的参考。 ####
|
8天前
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin
|
11天前
|
Java
JAVA多线程通信:为何wait()与notify()如此重要?
在Java多线程编程中,`wait()` 和 `notify()/notifyAll()` 方法是实现线程间通信的核心机制。它们通过基于锁的方式,使线程在条件不满足时进入休眠状态,并在条件满足时被唤醒,从而确保数据一致性和同步。相比其他通信方式,如忙等待,这些方法更高效灵活。 示例代码展示了如何在生产者-消费者模型中使用这些方法实现线程间的协调和同步。
26 3
|
10天前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
11天前
|
Java
java小知识—进程和线程
进程 进程是程序的一次执行过程,是系统运行的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。 线程 线程,与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间做切换工作时,负担要比
22 1
|
11天前
|
Java UED
Java中的多线程编程基础与实践
【10月更文挑战第35天】在Java的世界中,多线程是提升应用性能和响应性的利器。本文将深入浅出地介绍如何在Java中创建和管理线程,以及如何利用同步机制确保数据一致性。我们将从简单的“Hello, World!”线程示例出发,逐步探索线程池的高效使用,并讨论常见的多线程问题。无论你是Java新手还是希望深化理解,这篇文章都将为你打开多线程的大门。
|
12天前
|
安全 Java 编译器
Java多线程编程的陷阱与最佳实践####
【10月更文挑战第29天】 本文深入探讨了Java多线程编程中的常见陷阱,如竞态条件、死锁、内存一致性错误等,并通过实例分析揭示了这些陷阱的成因。同时,文章也分享了一系列最佳实践,包括使用volatile关键字、原子类、线程安全集合以及并发框架(如java.util.concurrent包下的工具类),帮助开发者有效避免多线程编程中的问题,提升应用的稳定性和性能。 ####
40 1
下一篇
无影云桌面