首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有限元知识 | 剪切、体积

一.剪切(shear locking) 简单地说就是在理论上没有剪切变形的单元中发生了剪切变形。该剪切变形也常称伴生剪切( parasitic shear)。...解决方法: 1.采用减缩积分; 2.细化网格; 3.非协调单元; 4.假定剪切应变法; 二.体积(volumetric locking) 简单地说就是应该有单元的体积变化的时候体积却没发生变化...二阶单元:对于弹塑性材料(塑性部分几乎属于不可压缩),二阶全积分四边形和六面体单元在塑性应变和弹性应变在一个数量级时会发生体积。二次减缩积分单元发生大应变时体积也伴随出现。...但值得注意的是,一阶全积分单元当采用选择性减缩积分(selectively reduced integration)时可以避免出现体积。 产生的结果:使得体积不变,即体积模量太大,刚度太刚。...检查方法: 输出积分点的围压应力,分析围压应力是否在相邻积分点存在突变,是否显棋格式分布,是的话就说明出现体积

2.1K70

【说站】java线程是什么

java线程是什么 1、说明 线程是指等待线程由于唤醒其所需的条件永远无法成立,或者其他线程无法唤醒这个线程而一直处于非运行状态(线程并未终止)导致其任务 一直无法进展。...2、线程分为两种: (1)信号丢失锁:信号丢失锁是因为没有对应的通知线程来将等待线程唤醒,导致等待线程一直处于等待状态。...(2)嵌套监视器:嵌套监视器是由于嵌套导致等待线程永远无法被唤醒的一种故障。...比如一个线程,只释放了内层Y.wait(),但是没有释放外层X; 但是通知线程必须先获得外层X,才可以通过 Y.notifyAll()来唤醒等待线程,这就导致出现了嵌套等待现象。...以上就是java线程的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

41340
您找到你想要的搜索结果了吗?
是的
没有找到

磕juc(二)java的“”事(1)

java的”“事(1) 一、乐观和悲观 1.1 悲观 认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。...如果数据已经被其他线程更新,则根据不同的实现方式执行不同的操作 乐观锁在Java中是通过使用无编程来实现,最常采用的是CAS算法,Java原子类中的递增操作就通过CAS自旋实现的。...乐观则直接去操作同步资源,是一种无算法,得之我幸不得我命,再抢 乐观一般有两种实现方式: 采用版本号机制 CAS(Compare-and-Swap,即比较并替换)算法实现 二、经典8 1...,该实例对象的其他普通同步方法必须等待获取的方法释放后才能获取。...在HotSpot虚拟机中,monitor采用ObjectMonitor实现 瞅一眼C++源码 ObjectMonitor.java→ObjectMonitor.cpp→objectMonitor.hpp

32410

磕juc(二)java的“”事(2)

java的”“事(2) 一、公平和非公平 1.1 从ReentrantLock卖票编码演示公平和非公平现象 class Ticket { private int number = 30;...所以Java中ReentrantLock和synchronized都是可重入,可重入的一个优点是可一定程度避免死锁。...当执行monitorenter时,如果目标对象的计数器为零,那么说明它没有被其他线程所持有,Java虚拟机会将该对象的持有线程设置为当前线程,并且将 其计数器加1。...在目标对象的计数器不为零的情况下,如果对象的持有线程是当前线程,那么 Java 虚拟机可以将其计数器加1,否则需要等待,直至持有线程释放该。...当执行monitorexit时,Java虚拟机则需将对象的计数器减1。计数器为零代表已被释放。 2.2.2 显式 (即Lock)也有ReentrantLock这样的可重入

30910

java同步系列之ReentrantLock源码解析(一)——公平、非公平

重入,是指一个线程获取之后再尝试获取时会自动获取。 在Java中,除了ReentrantLock以外,synchronized也是重入。...ReentrantLock实现了Lock接口,Lock接口里面定义了java应该实现的几个方法: // 获取void lock();// 获取(可中断)void lockInterruptibly...底层调用的是Unsafe的park()方法 LockSupport.park(this); // 返回是否已中断 return Thread.interrupted();} 看过之前彤哥写的【磕...java同步系列之自己动手写一个Lock】的同学看今天这个加锁过程应该思路会比较清晰。...// java.util.concurrent.locks.ReentrantLock.unlock()public void unlock() { sync.release(1);}// java.util.concurrent.locks.AbstractQueuedSynchronizer.releasepublic

45130

java同步系列之mysql分布式

问题 (1)什么是分布式? (2)为什么需要分布式? (3)mysql如何实现分布式? (4)mysql分布式的优点和缺点?...1,否则返回0; release_lock('user_1')如果该是当前客户端持有的则返回1,如果该被其它客户端持有着则返回0,如果该没有被任何客户端持有则返回null; 多客户端案例 为了便于举例...5 releaselock('user2', 0) -> null - 6 - getlock('user1', 0) -> 1 7 - releaselock('user1', 0) -> 1 Java...单机的将无法保证线程安全; (2)mysql分布式是基于 get_lock('key',timeout)和 release_lock('key')两个函数实现的; (3)mysql分布式是可重入...答:1)方便快捷,因为基本每个服务都会连接数据库,但是不是每个服务都会使用redis或者zookeeper; 2)如果客户端断线了会自动释放,不会造成一直被占用; 3)mysql分布式是可重入

87800

Java并发】—–J.U.C之重入:ReentrantLock

ReentrantLock还提供了公平也非公平的选择,构造方法接受一个可选的公平参数(默认非公平),当设置为true时,表示公平,否则为非公平。...公平与非公平的区别在于公平获取是有顺序的。但是公平的效率往往没有非公平的效率高,在许多线程访问的情况下,公平表现出较低的吞吐量。 ?...当state == 0 时,则将持有线程设置为null,free= true,表示释放成功。 公平与非公平 公平与非公平的区别在于获取的时候是否按照FIFO的顺序来。...例如:时间等候,可中断等候,投票。...【Java并发】—–J.U.C之AQS:AQS简介 【Java并发】—–J.U.C之AQS:CLH同步队列 【Java并发】—–J.U.C之AQS:同步状态的获取与释放 【Java并发】

66270

Java并发】—–J.U.C之读写:ReentrantReadWriteLock

所以就提供了读写。 读写维护着一对,一个读和一个写。...降级:遵循获取写、获取读锁在释放写的次序,写能够降级成为读 读写ReentrantReadWriteLock实现接口ReadWriteLock,该接口维护了一对相关的,一个用于只读操作,另一个用于写入操作...降级 上开篇是LZ就阐述了读写有一个特性就是降级,降级就意味着写是可以降级为读的,但是需要遵循先获取写、获取读锁在释放写的次序。...推荐阅读 因为里面很多地方涉及到了AQS部分,推荐阅读如下部分: 【Java并发】—–J.U.C之AQS:AQS简介 【Java并发】—–J.U.C之AQS:CLH同步队列 【Java并发】...—–J.U.C之AQS:同步状态的获取与释放 【Java并发】—–J.U.C之AQS:阻塞和唤醒线程 【Java并发】—–J.U.C之重入:ReentrantLock ----

66770

java同步系列之ReentrantLock源码解析(二)——条件

---- 问题 (1)条件是什么? (2)条件适用于什么场景? (3)条件的await()是在其它线程signal()的时候唤醒的吗?...简介 条件,是指在获取之后发现当前业务场景自己无法处理,而需要等待某个条件的出现才可以继续处理时使用的一种。...在java中,条件的实现都在AQS的ConditionObject类中,ConditionObject实现了Condition接口,下面我们通过一个例子来进入到条件的学习中。...源码分析 ConditionObject的主要属性 public class ConditionObject implements Condition, java.io.Serializable {...彩蛋 为什么java有自带的关键字synchronized了还需要实现一个ReentrantLock呢? 首先,它们都是可重入; 其次,它们都默认是非公平模式; 然后,...

45020

Java并发:J.U.C之读写:ReentrantReadWriteLock

所以就提供了读写。 读写维护着一对,一个读和一个写。...降级:遵循获取写、获取读锁在释放写的次序,写能够降级成为读 读写ReentrantReadWriteLock实现接口ReadWriteLock,该接口维护了一对相关的,一个用于只读操作,另一个用于写入操作...AbstractQueuedSynchronizer { /** * 省略其余源代码 */ } public static class WriteLock implements Lock, java.io.Serializable...{ /** * 省略其余源代码 */ } public static class ReadLock implements Lock, java.io.Serializable...4、降级 上开篇是LZ就阐述了读写有一个特性就是降级,降级就意味着写是可以降级为读的,但是需要遵循先获取写、获取读锁在释放写的次序。

23460

Java并发】-----J.U.C之读写:ReentrantReadWriteLock

所以就提供了读写。 读写维护着一对,一个读和一个写。...降级:遵循获取写、获取读锁在释放写的次序,写能够降级成为读 读写ReentrantReadWriteLock实现接口ReadWriteLock,该接口维护了一对相关的,一个用于只读操作,另一个用于写入操作.../** * 省略其余源代码 */ } public static class WriteLock implements Lock, java.io.Serializable.../** * 省略其余源代码 */ } public static class ReadLock implements Lock, java.io.Serializable...降级 上开篇是LZ就阐述了读写有一个特性就是降级,降级就意味着写是可以降级为读的,但是需要遵循先获取写、获取读锁在释放写的次序。

75290

磕Synchronized底层实现--偏向

主要包括以下几篇文章: 磕Synchronized底层实现--概论 磕Synchronized底层实现--偏向 磕Synchronized底层实现--轻量级(待更新) 磕Synchronized...has_bias_pattern(), "biases should be revoked by now"); } slow_enter (obj, lock, THREAD) ; } 如果是正常的Java...= mark->bias_epoch()) { if (attempt_rebias) { assert(THREAD->is_Java_thread(), "");...对于需要safepoint的操作(VM_Operationevaluate_at_safepoint返回true)必须要等到所有的Java线程进入到safepoint才开始执行。...这是因为在Java中一个对象的hashcode是在调用这两个方法时才生成的,如果是无状态则存放在mark word中,如果是重量级则存放在对应的monitor中,而偏向是没有地方能存放该信息的,所以必须升级

1.8K30

Java并发】----- Java 并发精品合集

Java 并发】系列是 LZ 在 2017 年写的第一个磕系列,一直没有做一个合集,这篇博客则是将整个系列做一个概览。 先来一个总览图: ?...【Java并发】—–J.U.C之AQS:CLH同步队列 前线程已经等待状态等信息构造成一个节点(Node)并将其加入到CLH同步队列,同时会阻塞当前线程,当同步状态释放时,会把首节点唤醒(公平),...【Java并发】—–J.U.C之重入:ReentrantLock 一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,...这篇博客带你理解 重入:ReentrantLock 内在本质。 【Java并发】—–J.U.C之读写:ReentrantReadWriteLock 读写维护着一对,一个读和一个写。...降级:遵循获取写、获取读锁在释放写的次序,写能够降级成为读Java并发】—–J.U.C之Condition 在没有Lock之前,我们使用synchronized来控制同步,配合Object

1.1K20

磕Synchronized底层实现--轻量级

磕Synchronized底层实现--轻量级 本文为磕Synchronized底层实现第三篇文章,内容为轻量级实现。...轻量级并不复杂,其中很多内容在偏向一文中已提及过,与本文内容会有部分重叠。 另外轻量级的背景和基本流程在概论中已有讲解。强烈建议在看过两篇文章的基础下阅读本文。...本系列文章将对HotSpot的synchronized实现进行全面分析,内容包括偏向、轻量级、重量级的加锁、解锁、升级流程的原理及源码分析,希望给在研究synchronized路上的同学一些帮助...主要包括以下几篇文章: 磕Synchronized底层实现--概论 磕Synchronized底层实现--偏向 磕Synchronized底层实现--轻量级 磕Synchronized底层实现...否则要走轻量级or重量级的释放流程 if (!

63330

java同步系列之redis分布式进化史

问题 (1)redis如何实现分布式? (2)redis分布式有哪些优点? (3)redis分布式有哪些缺点? (4)redis实现分布式有没有现成的轮子可以使用?...其实不然,实现的必要条件只有第一个,对共享变量的控制,如果共享变量的值为null就给他设置个值(java中可以使用CAS操作进程内共享变量),如果共享变量有值则不断重复检查其是否有值(重试),待内逻辑执行完毕再把共享变量的值设置回...释放的时候,执行一段lua脚本,把这段lua脚本当成一个完整的命令,先检查这个对应的值是不是上面设置的随机值,如果是再执行del释放,否则直接返回释放失败。...我们知道,redis是单线程的,所以这段lua脚本中的get和del不会存在并发问题,但是不能在java中先get再del,这样会当成两个命令,会有并发问题,lua脚本相当于是一个命令一起传输给redis...分布式的公平/非公平/读写等),有兴趣的可以去看看,下面贴出链接: ?

81100

java同步系列之自己动手写一个Lock

---- 问题 (1)自己动手写一个需要哪些知识? (2)自己动手写一个到底有多简单? (3)自己能不能写出来一个完美的?...简介 本篇文章的目标一是自己动手写一个,这个的功能很简单,能进行正常的加锁、解锁操作。 本篇文章的目标二是通过自己动手写一个,能更好地理解后面章节将要学习的AQS及各种同步器实现的原理。...关于Unsafe类的相关讲解请参考彤哥之前发的文章: 【java魔法类之Unsafe解析】 解决 一个变量 这个变量只支持同时只有一个线程能把它修改为1,所以它修改完了一定要让其它线程可见,因此,...如果要支持可重入也很简单,获取时检测是不是被当前线程占有着,如果是就把state的值加1,释放时每次减1即可,减为0时表示已释放。 (2)我们实现的是公平还是非公平?...答:非公平,因为获取的时候我们先尝试了一次,这里并不是严格的排队,所以是非公平。 (3)完整源码 关注我的公众号“彤哥读源码”,后台回复“mylock”获取本章完整源码。

40150

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券