
java
文章平均质量分 83
小白雨
努力
展开
-
多线程基础(4):几种常见的关键字(synchronized,volatile,notify和wait)-解决线程安全问题
一.synchronized1.cynchronized的特性1)互斥(保证原子性)synchronized 会起到互斥的效果当一个线程进入 synchronized 修饰的代码块,相当于 加锁同一个线程退出 synchronized 修饰的代码块,相当于 解锁如果线程一,首先执行到这个方法,首先会得到锁(synchronized),进行加锁.当其他线程执行到这个方法,若是线程一还未执行完毕,也就意味着这个方法还处于加锁状态,此时其他线程就只能阻塞等待.直到线程一完成被 synchroni原创 2022-04-27 15:30:06 · 912 阅读 · 0 评论 -
多线程基础(3):线程安全问题
线程安全问题一.什么是线程不安全?如果多线程环境下代码运行的结果是符合我们预期的,即和在单线程环境下一样的结果,则说这个程序是线程安全的.否则就是线程不安全的得到的结果和预期不一样,这视为是一种bug,而由于多线程并发执行导致的这种 bug,就称为线程不安全案例: //多个线程修改同一个数据 static class Counter{ private static int count = 0; public static void increase()原创 2022-04-26 21:16:15 · 249 阅读 · 0 评论 -
多线程基础(2):Thread 类以及常见的方法,线程的状态
一.Thread 类及常见方法Thread 类是 JVM 用来管理线程的一个类,换句话说,每个线程都有一个唯一的 Thread 对象与之关联.每个执行流,也需要有一个对象来描述,Thread 类的对象正是用来描述一个线程执行流的.JVM 会将这些 Thread 对象组织起来,用于线程调度,线程管理.1.对线程重命名public static void main(String[] args) { Thread t1 = new Thread("线程一"){ @Override原创 2022-04-25 11:29:21 · 308 阅读 · 0 评论 -
多线程基础(1):线程和进程,创建线程的五种方式
一.关于进程和线程1.什么是进程进程在操作系统中是这样进行管理的:描述:PCB,叫做进程管理块,在创建进程时,建立 PCB,伴随进程运行的全过程,直到进程撤销而撤销.(包含 PID,内存指针,文件描述符表,进程的状态,上下文,优先级,记账信息…)实际上这个 PCB 是一个非常大的结构体,属性非常多组织:通过双向链表进行组织虚拟地址空间:操作系统会直接依据真实的内存地址进行划分空间,分配给每一个进程.2.多线程的概念一个线程就是一个"执行流".每个线程之间都可以按照顺序执行自己的代原创 2022-04-24 15:12:29 · 1787 阅读 · 0 评论 -
多线程基础: (0)计算机相关知识
一.冯诺依曼体系CPU中央处理器,进行算数运算和逻辑判断存储器:分为内存和外存,用于存储数据(使用二进制的方式进行存储)针对存储空间硬盘 > 内存 >> CPU针对数据访问速度CPU >> 内存 > 硬盘计算机在计算加减乘除的时候,都是靠加法器数据在内存中的存储:存补码(目的是为了把加法和减法都统一成加法)代码最终是在 CPU 上执行的,这些编程语言写的代码最终会被编译器/解释器,转换成 CPU 能认识的指令.二.内存和外存外存:硬盘,软盘,光原创 2022-04-23 15:46:58 · 276 阅读 · 0 评论 -
网络之初识
IP地址端口号协议协议分层封装和分用1.IP地址什么是IP地址?在TCP/IP的通信中,IP地址用于标识主机和路由器,简单来说IP地址用来定位主机的网络地址…就好比是你寄快递的时候,寄件地址就是源IP地址,收件地址就是目的IP地址.IP地址的表示(IPv4):例如:192.168.43.203IP地址是由32位正整数来表示,采用"点分十进制".把32位分成4分,由"."分割开,然后转成十进制.一个IP地址有32位,也就是说,可以有2^32也就是43亿个不同的IP地址,虽.原创 2021-12-19 10:16:01 · 2979 阅读 · 1 评论 -
面向对象编程02
目录:一、多态二、抽象类三、接口原创 2021-05-24 13:02:45 · 318 阅读 · 0 评论 -
初识java
加粗样原创 2021-03-30 17:36:23 · 155 阅读 · 0 评论 -
面向对象编程01
本节目标包继承组合多态抽象类接口包1、包 (package) 是组织类的一种方式.使用包的主要目的是保证类的唯一性.注意点:在文件的最上方加上一个 package 语句指定该代码在哪个包中.包名需要尽量指定成唯一的名字, 通常会用公司的域名的颠倒形式(例如 com.bit.demo1 ).包名要和代码路径相匹配. 例如创建 com.bit.demo1 的包, 那么会存在一个对应的路径 com/bit/demo1 来存储代码.如果一个类没有 package 语句, 则该原创 2021-05-23 02:33:29 · 678 阅读 · 0 评论