线程主要是用来解决“共享资源”问题,实际开发中或多或少都会用到各类线程,为了线程安全我们有必要了解常见几种,下面是本人查看一些大牛博客然后整理内容,加上自己一些见解,水平有限,如果不慎有误,欢迎交流指正。常见列举自旋(OSSPinLock、os_unfair_lock)互斥(pthread_mutex_t、NSLock、@synthronized)递归(pthread_
近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对来个简单介绍分享。 1 前言近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对来个简单介绍
转载 2023-07-24 12:07:53
43阅读
# Redission常用 在分布式系统中,为了保证数据一致性和避免竞争问题,我们经常会使用来控制对共享资源访问。Redission是一个基于RedisJava驻留库,提供了丰富分布式对象和服务,其中也包括对分布式支持。在本文中,我们将介绍Redission常用以及如何使用它们。 ## Redission常用 Redission提供了三种常用: 1. 可重入
原创 2024-03-19 04:49:16
57阅读
## Android常用实现流程 下面是实现Android常用流程图: ```mermaid graph LR A(开始) B[定义变量] C[设置变量初始值] D{是否需要加锁} E[加锁] F[操作保护资源] G[解锁] H{是否需要继续操作} I[不需要继续操作] J(结束) A-->B B-->C C--是-->D C--否-->F D--是-->E D--否--
原创 2024-01-19 08:30:51
45阅读
# Java常用 在Java多线程编程中,为了保证线程安全和数据一致性,我们经常会使用到是一种同步机制,用于控制对共享资源访问。Java提供了多种实现,本文将介绍几种常用,并给出相应代码示例。 ## 1. synchronized `synchronized`是Java中最基本机制,可以修饰方法或代码块。通过`synchronized`修饰方法或代码块,在同一时
原创 2023-11-08 08:51:27
34阅读
谈谈mysql十一种吧1.1 表1.2 行1.3 共享(读,S)1.4 排它(写,X)1.5意向1.6 乐观1.7 悲观1.8 间歇1.9记录1.10临键1.11 死锁 1.1 表表级是mysql中粒度最大一种,表示当前操作对整张表加锁,资源开销比行少,不会出现死锁情况,但是发生冲突概率很大。该锁定机制最大特点是实现逻辑非常简单,带来系统负
转载 2023-08-10 20:55:26
72阅读
在读很多并发文章中,会提及各种各样如公平,乐观等等,这篇文章介绍各种分类。介绍内容如下:1. 公平 / 非公平 2. 可重入 / 不可重入 3. 独享 / 共享
# MySQL常用及其应用 在数据库管理中,是保证数据一致性和并发控制重要机制。MySQL作为流行关系型数据库,提供了多种机制以帮助开发者管理并发操作和数据完整性。本文将介绍MySQL常用,包括共享、排他和自动提交,并通过代码示例加以说明。 ## 1. 概述 是数据库管理系统提供一种机制,用于确保多个事务在并发执行时不会干扰。可以分为两大类:共享(也称为读
原创 9月前
46阅读
iOS总结 iOS总结自旋dispatch_semaphore信号量与互斥区别生产者消费者模式NSConditionNSConditionLockpthread_mutex读写 iOS开发中关于整理了下,有以下几种:比价常用是:dispatch_semaphoreNSLockNSCondition, NSConditionLock读写NSRecursiveLock@synchro
类别:互斥,递归,条件,自旋实现方式:NSLock,NSRecursiveLock, NSConditionLock,@synchronized,GCD信号量等下面说一下常用几种:1.@synchronized:对象级别所,互斥,性能较差不推荐使用@synchronized(这里添加一个OC对象,一般使用self) { 这里写要加锁代码
转载 2023-06-24 22:34:48
86阅读
定义:在 Java 中,是一种用于实现多线程之间同步和互斥机制。是一种抽象概念,用于控制对共享资源访问。它确保在同一时间只有一个线程可以访问被保护代码块或对象。Java 中可以是显式(如通过ReentrantLock类实现)或隐式(如使用synchronized关键字) 产生: 多线程编程需求: 在多线程环境下,多个线程可能同时访问共享资源。如果没有适当同步机制,可能会导
原创 10月前
60阅读
在多线程环境下,程序往往会出现一些线程安全问题,为此,Java提供了一些线程同步机制来解决安全问题,比如:synchronized和Lock都能解决线程安全问题。悲观和乐观我们可以将大体分为两类:悲观乐观顾名思义,悲观总是假设最坏情况,每次获取数据时候都认为别的线程会修改,所以每次在拿数据时候都会上锁,这样其它线程想要修改这个数据时候都会被阻塞直到获取。比如MySQL数
文章目录Java中常用公平与非公平可重入与不可重入共享与独占悲观与乐观自旋、适应性自旋自旋适应性自旋偏向轻量级与重量级可中断互斥参考文章 Java中常用锁在Java中根据特性来区分可以分为很多,在程序中""作用无非就是保证线程安全,线程安全目的就是保证程序正常执行。在Java中具体""实现,无非就三种:使用synchronized关键字、
# Java常用记录 在Java中,多线程并发执行时,可能会出现资源竞争问题,这时需要使用来保护共享资源访问。记录是一种常用类型,用于保护共享资源读写操作。本文将介绍Java中常用记录及其使用方法,并通过代码示例演示其应用。 ## 什么是记录 记录,也称为行级,是一种用于保护数据库记录。在Java中,记录通常是通过锁定对象中某个字段来实现。当多个线程同时
原创 2024-02-13 08:37:03
17阅读
一、    什么是死锁死锁是指两个或两个以上进程在执行过程中,因争夺资源而造成一种互相等待现象,若无外力作用,它们都将无法推进下去.此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等进程称为死锁进程.二、    死锁产生四个必要条件互斥条件:指进程对所分配到资源进行排它性使用,即在一段时间内某资源只由
前言:本文介绍了一种基于redis分布式,利用jedis实现应用(本文应用于多客户端+一个redis架构,并未考虑在redis为主从架构时情况)一、基本原理1、用一个状态值表示,对占用和释放通过状态值来标识。2、redis采用单进程单线程模式,采用队列模式将并发访问变成串行访问,多客户端对Redis连接并不存在竞争关系。二、基本命令1、setNX(SET if Not eXists
转载 2024-06-30 10:02:26
18阅读
多线程编程中经常会碰到多个线程访问一个变量问题,那么我们先来熟悉下我们跟线程相关修饰符nonatomic和atomic一搜索,会有很多文章;但是这些文章有一个共同特点那就是nonatomic多线程不安全和atomic多线程安全如何来判断线程安全或不安全?对于小公司在大多数项目说简单点安全就是不报错,不安全就是报错我写了个demo验证了下@property (strong, nonatomi
转载 2024-06-24 16:51:05
23阅读
iOS上增加手势屏、解锁功能 在一些涉及个人隐私场景下,尤其是当移动设备包含太多私密信息时,为用户安全考虑是有必要。桌面版QQ在很多年前就考虑到用户离开电脑后隐私泄露危险,提供了“离开电脑自动锁定”或者“闲置锁定”等类似功能,具体我也忘了。而在iPhone版QQ上,也提供了手势功能。如下图: 我在上一篇博文中简单提到如何根据手指移动画线条,而这里是进一步版本,仍然只是粗糙原
转载 2023-06-01 16:00:45
125阅读
谈谈iOS(解析一下NSLock)1 前言近日工作不是太忙,刚好有时间了解一些其他东西,本来打算今天上午去体检,但是看看天气还是明天再去吧,也有很大一个原因:就是周六没有预约上!闲话少说,这里简单对来个简单介绍分享。2 目录第一部分:什么是第二部分:分类第三部分:作用第四部分:iOS实现第一部分:什么是从小就知道,就是家里门上那个,用来防止盗窃。它还有钥匙,用于
是指对一整张表加锁,一般是 DDL 处理时使用。 行(Record Locks) 而行则是锁定某一行或者某几行,或者行与行之间间隙。意向也是表级,分为读意向(IS)和写意向(IX)。当事务要在记录上加上行时,要首先在表上加上意向。这样判断表中是否有记录正在加锁就很简单了,只要看下表上是否有意向就行了,从而就能提高效率。意向之间是不会产生冲突,它只会阻塞表级读
转载 2023-08-14 22:10:17
53阅读
  • 1
  • 2
  • 3
  • 4
  • 5