线程lesson java 03

Linux多线程11-读写锁

当有一个线程已经持有互斥锁时,互斥锁将所有试图进入临界区的线程都阻塞住。 但是考虑一种情形,当前持有互斥锁的线程只是要读访问共享资源,而同时有其它几个线程也想读取这个共享资源,但是由于互斥锁的排它性,所有其它线程都无法获取锁,也就无法读访问共享资源了,但是实际上多个线程同时读访问共享资源并不会导致问 ......
线程 Linux 11

Linux多线程13-条件变量

上节代码存在的问题: 生产者已经没有数据了, 消费者还在while循环判断是否有数据,浪费资源 没有数据了应该通知生产者生产,生产好了通知消费者消费 这就需要条件变量 pthread_cond_t ```c int pthread_cond_init(pthread_cond_t *restrict ......
线程 变量 条件 Linux 13

Linux多线程14-信号量

信号量的类型 sem_t ```c int sem_init(sem_t *sem, int pshared, unsigned int value); 初始化信号量 参数: - sem: 信号量变量地址 - pshared: 0 用在线程间, 非0 用在进程间 - value: 信号量中的值 in ......
线程 信号 Linux 14

Linux多线程12-生产者和消费者模型

![image](https://img2023.cnblogs.com/blog/894919/202306/894919-20230626085900099-1696309927.png) 一个最简单的生产者消费者模型 ```c /* 生产者消费者模型(粗略版) */ #include #inc ......
生产者 线程 模型 消费者 Linux

Linux多线程03-终止线程

### pthread_exit 和 pthread_self 和 pthread_equal 描述: #### **pthread_exit** > pthread_exit() 函数终止调用该函数的线程,并通过retval返回一个值,如果该线程是可连接的,则在同一进程中调用pthread_joi ......
线程 Linux 03

Linux多线程01-线程概述

### 线程概述 - 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序 中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多 ......
线程 Linux 01

Linux多线程02-创建线程

### pthread_create 描述: > pthread_create() 函数在调用进程中创建一个新的线程。新线程通过调用 start_routine() 开始执行,arg 作为 start_routine() 的唯一参数传递。 新线程以以下方式之一终止: - 调用 pthread_exi ......
线程 Linux 02

Linux多线程06-线程取消

### pthread_cancel 描述: > pthread_cancel()函数向线程thread发送一个取消请求。目标线程对取消请求的响应取决于该线程控制的两个属性:其取消状态和类型。 一个线程的取消状态由pthread_setcancelstate(3)确定,可以启用(对于新线程而言是默认 ......
线程 Linux 06

Linux多线程07-线程属性

线程属性类型: pthread_attr_t 描述: pthread_attr_setdetachstate() 函数 将由 attr 引用的线程属性对象的分离状态属性设置为 detachstate 中指定的值。分离状态属性确定使用线程属性对象 attr 创建的线程将在可连接状态还是分离状态下创建。 ......
线程 属性 Linux 07

Linux多线程08-线程同步

一个多线程售票示例: ```c // 三个窗口, 共100张票 #include #include #include int tickets = 100; //所有线程都共享这100张票 void* sellticket(void* arg){ // 卖票 while(tickets>0){ usl ......
线程 Linux 08

Linux多线程05-线程的分离

### pthread_detach 描述: > pthread_detach()函数将由thread标识的线程标记为已分离。当一个分离的线程终止时,它的资源会自动释放回系统,而不需要另一个线程与已终止的线程加入。尝试分离一个已经分离的线程会导致未指定的行为。 ```c #include int p ......
线程 Linux 05

Linux多线程04-连接已终止的线程

### pthread_join 描述: > pthread_join() 函数等待由 thread 指定的线程终止。如果该线程已经终止,则pthread_join()将立即返回。由thread指定的线程必须是可连接的。 如果retval不为NULL,则pthread_join()将目标线程的退出状 ......
线程 Linux 04

【从零开始学微服务】03.软件架构的演化过程

>大家好,欢迎来到万猫学社,跟我一起学,你也能成为**微服务专家**。 目前大部分的企业系统和互联网应用都是采用Web的形式提供服务能力,根据系统的组织方式和部署结构,我们通常把软件架构的演化过程分为以下几个阶段: - 单体架构 - 垂直架构 - SOA架构 - 微服务架构 # 单体架构 单体架构, ......
架构 过程 软件 03

SpringBoot 中的多线程事务处理(自定义注解)

前言 我们开发的时候常常会遇到多线程事务的问题。以为添加了@Transactional注解就行了,其实你加了注解之后会发现事务失效。 原因:数据库连接spring是放在threadLocal里面,多线程场景下,拿到的数据库连接是不一样的,即是属于不同事务。 本文是基于springboot的@Asyn ......
注解 线程 SpringBoot 事务

JAVA方法

java方法 原子性 ​​public static int max(int num1,int num2){ int result = 0;//初始化 if(num1==num2){ System.out.println("num1==num2"); return 0;//终止方法 } if(num ......
方法 JAVA

6月25日java学习日记

端午节小休息了几天,断开连接了几天,希望快速状态回到吧,今天了解了部分java异常类,Exceptions类为异常类,学习了throw关键字,以及了解了try catch的用法(基本与C#相同),同时使用HasgMap以及List.of方法实现了斗地主案例。 ......
日记 java

多线程

# 多线程 ## 1、多线程的定义 ```text 1、什么是多线程? 有了多线程,我们就可以让程序同时做多件事情 2、多线程的作用? 提高效率 3、多线程的应用场景? 只要你想让多个事情同时运行就需要用到多线程 比如: 软件中的耗时操作、所有的聊天软件、所有的服务器 4、并发:在同一时刻,有多个指 ......
线程

学习Java前的一些介绍

1.java开发环境搭建 卸载: 删除Java的安装目录 删除JAVA_HOME 删除path下关于java的目录 java -version 验证 安装: 创建jdk和jre两个目录(还可以创建一个code目录存放代码) 百度搜索jdk(建议安装jdk8) 同意协议,找到对应版本并且下载 双击安装 ......
Java

03 | 事务隔离:为什么你改了我还看不见?

## 03 | 事务隔离:为什么你改了我还看不见? ### 隔离性与隔离级别 当数据库上有多个事务同时执行的时候,就可能出现**脏读(dirty read)**、不可重复读(non-repeatable read)、**幻读(phantom read)**的问题,为了解决这些问题,就有了“隔离级别” ......
事务 03

Java 二维数组

# Java 二维数组 # 1.二维数组的定义 ## 二维数组即数组里面又存放了一个一维数组;Java 中一维数组的个数可以变化。 ## 动态定义: ## int\[]\[] arr = new int\[数组个数]\[]; ## int arr\[]\[] = new int\[数组个数]\[]; ......
数组 Java

异步注解@Async使用自定义线程池

## 1.@Async注解 @Async是java中一个注解,其作用就是加上该注解的类或方法能够异步执行任务,该注解添加到方法上时,表示该方法是异步方法,添加到类上时,表示该类中的所有方法都是异步方法。 该注解的代码为:![image](https://img2023.cnblogs.com/blo ......
注解 线程 Async

Java基础-Day02

## Java基础-Day02 ## 运算符 - 算法运算符 ![](https://img2023.cnblogs.com/blog/2779111/202306/2779111-20230625172550208-2015687834.png) ​ - 赋值运算符 ![](https://img ......
基础 Java Day 02

QT为什么只能由主线程操作UI

# QT为什么只能由主线程操作UI ## 背景 QT中,**每次子线程去更新Ui都要通过信号槽去刷**。其实不光是QT,很多GUI程序框架都是这么规定的。 **主线程**:主线程是唯一允许创建`QApplication`或者`QCoreApplication`对象的,并且调用`exec()`启动事件 ......
线程

【后端面经-Java】HashMap详解

[TOC](【后端面经-Java】HashMap详解) ## 1. HashMap的家族定位 接口`java.util.Map`有四个常用的实现类,如图是它们之间的类继承关系。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/ba13b32ddabc47bd9666 ......
端面 HashMap Java

IDEA中修改Java版本

> 1. pom文件 ![](https://img2023.cnblogs.com/blog/2051703/202306/2051703-20230625183130643-20262118.png) > 2. File Project Structure ![](https://img2023 ......
版本 IDEA Java

【问题记录】A child container failed during start module java.rmi does not "opens sun.rmi.transport" to unnamed module @1e236278

``` 子容器启动失败,spring容器没启动,tomcat也不能启动 不是servlet-api的scope问题 Dubbo的@Service注解注释掉就可以启动,怀疑是Dubbo版本问题(但不是) 百度module java.rmi does not "opens sun.rmi.transpo ......
module quot container rmi transport

事务超时异常:org.springframework.transaction.TransactionTimedOutException: Transaction timed out: deadline was Sun Jun 25 17:34:03 CST 2023

报错如下: 代码如下: Controller import com.zwh.service.impl.TimeOutService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotati ......

Java 反序列化之 XStream 反序列化

XStream 是一个简单的基于 Java 库,Java 对象序列化到 XML,反之亦然(即:可以轻易的将 Java 对象和 XML 文档相互转换)。如何使用 XStream 进行序列化和反序列化操作? ......
序列 XStream Java

Java多线程-Lesson02

一.Lamda表达式 λ是希腊字母表的第十一位字母,英文名是Lambda Lamda表达式的出现主要是为了避免匿名内部类过多的原因,它属于函数式编程的范畴 为什么要使用Lamda表达式? 避免匿名内部类定义过多 可以让你的代码看起来很简洁 去掉了没有意义的代码,只留下一堆核心逻辑 主要使用在创建的类 ......
线程 Lesson Java 02

【拼多多商品详情数据】API接口获得宝贝详情数据、商品标题数据等Java调用示例

​ 拼多多商品详情API接口的作用是获取拼多多平台上某个商品的详细信息,包括商品标题、价格、图片、规格、参数、店铺信息等。开发者可以通过该接口获取到商品的原始数据,方便进行数据分析、价格比较、爬取等操作。 通过该接口获取到的商品详情数据可以结合其他数据进行深度挖掘,例如可以将商品数据对比分析,找出同 ......
数据 详情 商品 示例 接口