#include <thread>
#include <iostream>
#include <mutex>
#include <atomic>
#include <chrono> using namespace std; #ifdef _LOCK_FREE atomic<int> i = ; void foo() {
int count = ;
while (count--)
{
i++;
}
} int main()
{
chrono::steady_clock::time_point start_time = chrono::steady_clock::now(); thread thread1(foo);
thread thread2(foo); thread1.join();
thread2.join(); cout << "i = " << i << endl; chrono::steady_clock::time_point end_time = chrono::steady_clock::now();
chrono::duration<double> time_span = chrono::duration_cast<chrono::microseconds>(end_time - start_time);
cout << "lock free elpased time: " << time_span.count() << " ms" << endl; system("pause"); return ;
}
#endif // _LOCK_FREE #ifdef _MUTEX_LOCK
int i = ;
mutex g_mutex; void foo() {
int count = ;
while (count--)
{
g_mutex.lock();
i++;
g_mutex.unlock();
}
} int main()
{
chrono::steady_clock::time_point start_time = chrono::steady_clock::now(); thread thread1(foo);
thread thread2(foo); thread1.join();
thread2.join(); cout << "i = " << i << endl; chrono::steady_clock::time_point end_time = chrono::steady_clock::now();
chrono::duration<double> time_span = chrono::duration_cast<chrono::microseconds>(end_time - start_time);
cout << "mutex lock elpased time: " << time_span.count() << " ms" << endl; system("pause"); return ;
}
#endif _MUTEX_LOCK

lock free的更多相关文章

  1. C#各种同步方法 lock, Monitor,Mutex, Semaphore, Interlocked, ReaderWriterLock,AutoResetEvent, ManualResetEvent

    看下组织结构: System.Object System.MarshalByRefObject System.Threading.WaitHandle System.Threading.Mutex S ...

  2. 多线程同步工具——Lock

    本文原创,转载请注明出处. 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> 锁分独占锁与共享锁, ...

  3. java 线程 Lock 锁使用Condition实现线程的等待(await)与通知(signal)

    一.Condition 类 在前面我们学习与synchronized锁配合的线程等待(Object.wait)与线程通知(Object.notify),那么对于JDK1.5 的 java.util.c ...

  4. InnoDB:Lock & Transaction

    InnoDB 是一个支持事务的Engine,要保证事务ACID,必然会用到Lock.就像在Java编程一下,要保证数据的线程安全性,必然会用到Lock.了解Lock,Transaction可以帮助sq ...

  5. 使用四元数解决万向节锁(Gimbal Lock)问题

    问题 使用四元数可以解决万向节锁的问题,但是我在实际使用中出现问题:我设计了一个程序,显示一个三维物体,用户可以输入绕zyx三个轴进行旋转的指令,物体进行相应的转动. 由于用户输入的是绕三个轴旋转的角 ...

  6. 万向节锁(Gimbal Lock)的理解

    [TOC] 结论 我直接抛出结论: Gimbal Lock 产生的原因不是欧拉角也不是旋转顺序,而是我們的思维方式和程序的执行逻辑没有对应,也就是说是我们的观念导致这个情况的发生. 他人解释 首先我们 ...

  7. 在多线程编程中lock(string){...}隐藏的机关

    常见误用场景:在订单支付环节中,为了防止用户不小心多次点击支付按钮而导致的订单重复支付问题,我们用 lock(订单号) 来保证对该订单的操作同时只允许一个线程执行. 这样的想法很好,至少比 lock( ...

  8. 谈谈 Lock

    上来先看MSDN关于lock的叙述: lock  关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁.  下面的示例包含一个 lock 语句. lock  关键字可确保当一 ...

  9. LOCK TABLES和UNLOCK TABLES与Transactions的交互

    LOCK TABLES对事务不安全,并且在试图锁定表之前隐式提交任何活动事务. UNLOCK TABLES只有在LOCK TABLES已经获取到表锁时,会隐式提交任何活动事务.对于下面的一组语句,UN ...

  10. SQL 性能调优中可参考的几类Lock Wait

    在我们的系统出现性能问题时,往往避不开调查各种类型 Lock Wait,如Row Lock Wait.Page Lock Wait.Page IO Latch Wait等.从中找出可能的异常等待,为性 ...

随机推荐

  1. linux 下解决git clone报错

    解决报错:error: The requested URL returned error: 401 Unauthorized while accessing   问题报错:error: The req ...

  2. 实例解析Docker数据卷+数据卷容器+flocker数据共享+DockerHub操作

    Docker内部数据管理和Docker之间的数据共享为数据卷和数据卷容器,实例解析1.将本地的文件作为容器的数据卷,2.数据卷flocker插件实现容器集群(或者Docker Swarm)的数据共享3 ...

  3. 基础架构之Maven私有库

    Maven对于Java开发来说肯定不会陌生,由于各种问题,公司常常需要搭建自己的私有Maven仓库. (一)  环境要求 Centos 7.5.1804 Docker 18.06.1-ce sonat ...

  4. Linux制作deb

    1.新建一个我们临时的工作目录mkdir deb 2.新建我们程序的目录mkdir hello 3.编写我们的程序 我们以我们最熟悉的helloworld程序做起,hello.c代码如下#includ ...

  5. 二十、滑动开关css

    如上图所示的图片,如何通过css实现呢? 下面咱们慢慢尝试: html: <div class="togglePosition"> <label class=&q ...

  6. SQL Server ->> SQL Server 2016功能改进之 -- Update Statistics

    1) 以前SQL Server更新一张表/索引的间隔是固定的,创建时更新一次,到了500行时更新第二次,接下来就是呈百分比式的间隔去更新,距离数据修改量达到表的行数量的的20%再次触发更新.但是这样的 ...

  7. [翻译] NimbusKit

    注意:NimbusKit 是Github上iOS部分开源库排名前20中的一员. http://nimbuskit.info/ https://github.com/jverkoey/nimbus ht ...

  8. spring core

    https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#beans

  9. [EffectiveC++]item38:通过复合塑膜出has -a 或“根据某物实现出”

    Model "has-a"or “is-implemented-in-terms-of” through composition

  10. ZT————pull push mode

    谁能讲讲push和pull模式是什么意思?(参与有分) [问题点数:100分,结帖人mickeyfirst] 收藏 mickeyfirst mickeyfirst 等级: 结帖率:94.12% 楼主 ...