Wesley13 Wesley13
3年前
java并发相关(四)——关于synchronized的可重入性,线程切换实现原理与是否公平锁
一、可重入性  关于synchronized的可重入性的证明,我们可以通过A类内写两个同步方法syncA(),syncB()。然后syncA内调用syncB,调用syncA发现代码可正常执行,来证明这一点。  当处于无锁阶段时,划掉,都重入了不可能处于无锁。  当处于偏向锁阶段时,由之前对偏向锁的解释可知,偏向当前线程id是,当前线程可直
Wesley13 Wesley13
3年前
java多线程(四)之同步机制
1.同步的前提  多个线程  多个线程使用的是同一个锁2.同步的好处  同步的出现解决了多线程的安全问题3.同步的弊端  当线程较多时,因为每个线程都会去判断同步上的锁,这样是很耗费资源的,会降低程序的运行效率.4.同步方法:  1.就是将同步关键字,synchronized加到方法上,此时的锁对象是this  
Wesley13 Wesley13
3年前
Java中正则表达式的一些特殊用法
最近在研究数据库迁移工具,阅读源码的过程中学习了一些正则表达式的特殊用法,于是记录一下。@Testpublicvoidtest(){Stringsql"CREATETABLEtest_table(\n""idint(11)
Stella981 Stella981
3年前
Promise的奇怪用法和自己实现一个Promise
原文链接: Promise的奇怪用法和自己实现一个Promise(https://my.oschina.net/ahaoboy/blog/4645165)使用Promise实现一个页面所有图片加载完毕的回调importReact,{useEffect}from"react";exportdefault()
Wesley13 Wesley13
3年前
Java并发编程原理与实战十二:深入理解volatile原理与使用
volatile:称之为轻量级锁,被volatile修饰的变量,在线程之间是可见的。可见:一个线程修改了这个变量的值,在另一个线程中能够读取到这个修改后的值。synchronized除了线程之间互斥之外,还有一个非常大的作用,就是保证可见性。以下demo即保证a值的可见性。首先来看demo:!复制代码(https://oscimg.osc
Stella981 Stella981
3年前
ReentrantReadWriteLock(读写锁)
ReentrantReadWriteLock是JDK5中提供的读写分离锁。读写分离锁可以有效的帮助减少锁的竞争,以此来提升系统的性能。用锁分离的机制来提升性能也非常好理解,比如线程A,B,C进行写操作,D,E,F进行读操作,如果使用ReentrantLock或者synchronized关键字,这些线程都是串行执行的,即每次都只有一个线程做操作。但是当D进行读
Wesley13 Wesley13
3年前
90行代码,15个元素实现无限滚动
前言在本篇文章你将会学到:IntersectionObserverAPI的用法,以及如何兼容。如何在ReactHook中实现无限滚动。如何正确渲染多达10000个元素的列表。!(https://oscimg.oschina.net/oscnet/4749b4
Stella981 Stella981
3年前
LuaThread的实现
在Lua只支持协程,并不支持系统级的线程,于是便想自己实现一个。用法如下:localthreadThread.create()thread:start()thread:run("returnarg..'world!'","hello",function(returnData)print(returnD
小万哥 小万哥
1年前
NumPy 分割与搜索数组详解
NumPy分割数组NumPy提供了np.arraysplit()函数来分割数组,将一个数组拆分成多个较小的子数组。基本用法语法:pythonnp.arraysplit(array,indicesorsections,axisNone)array:要分割的N
融云IM即时通讯 融云IM即时通讯
7个月前
融云IM干货丨uni-app中的uni-list 插件具体怎么用?
unilist是uniapp中用于构建列表的组件,以下是具体的使用方法:1.基本用法导入组件:首先,你需要在你的页面或组件中导入unilist和unilistitem组件。例如:javascriptimportuniListfrom'@/component