白话skynet第三篇:通过队列解决多线程竞争资源

今天遇到一个问题,在大厅服务中,如果一个请求使用到了一个公共的变量,如何保证其一致性? 虽然请求是挨个运行的,但是skynet.call会阻塞。 “同一个 skynet 服务中的一条消息处理中,如果调用了一个阻塞 API ,那么它会被挂起。挂起过程中,这个服务可以响应其它消息。这很可能造成时序问题,要非常小心处理。” 在其他语言中,比如c#,我们使用lock的办法,把变量或者执行的代码锁起来。 在skynet中用下面的办法解决 local sk_queue = require "skynet
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

JAVA并发编程>>并发级别

理解并发 这是我在开发者头条看到的。@编程原理林振华 有目标的提升自己会事半功倍,前行的道路并不孤独。 1、阻塞 当一个线程进入临界区(公共资源区)后,其他线程必须在临界区外等待,待进去的线程执行完成任务离开临界去后,其它线程才能进去。 2、无饥饿 线程排队先来后到,不管优先级大小,先来先执行,,就不会产生饥饿等待资源,也即公平锁;相反非公平锁则是根据优先级来执行,有可能排在前面的低优先级线程被后面的高优先级插队,形成饥饿。 3、无障碍 共享资源不加锁,每个线程都可以自由读写,当监测到被其他线
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Node.js 命令行工具的编写

日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作。其编写也不难,和日常编写 Node.js 代码并无二致。 package.json 中的 bin 字段 一个 npm 模块,如果在 package.json 中指定了 bin 字段,那说明该模块提供了可在命令行执行的命令,这些命令就是在 bin 字段中指定的。 package.json { "bin": { "myapp": "./cli.js" } } 程序安装后会可在命令行执行 myapp 命令,实
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

WIN10 拨号连接下 如何开启移动热点

错误提示为:我们无法设置移动热点,因为你的电脑未建立以太网,WIFI或手机网络连接。 解决方法:   1. 首先用手机或其他设备建立无线热点。   2. 电脑连接步骤1中的热点,电脑端打开移动热点。   3. 电脑端建立拨号上网连接,断开电脑与手机的无线连接(此处拨号连接如图为家里网络)。   4. 电脑端进入设备管理器,选择步骤3中的拨号连接(宽带连接),右键属性,点击共享,将该网络共享到步骤2中建立的热点(如图为本地连接*13)。 通过编辑 设置 WiFi 名称和密码 perfect
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

《移动平台开发实践》第7周学习总结

20189208 2018-2019-2 《移动平台开发实践》第7周学习总结 教材学习内容总结 需求: 用户需求:用户提出的。 产品需求:由用户需求提炼出的需求。 需求分析一般步骤: 挖掘真实需求;(更快的马车) 目标用户 使用场景 想要解决的问题 提出解决方案 筛选和验证方案 软件项目需求分析 收集需求 分析需求:表层需求→深层需求→底层需求 需求评价 需求设计 验证需求 产品经理常用软件 Axure RP 墨刀 石墨文档 第27章主要介绍了5种控件布局方法: LinearLayOut-水平
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

long & int 区别

http://www.cppblog.com/fwxjj/archive/2010/05/27/116526.html 64位系统,long是8字节;32位系统,long是4字节;
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

nmcli配置ipv6

nmcli配置ipv6 作者:Eric 微信:loveoracle11g [root@racooler ~]# nmcli connection show eno16777736 | grep ipv6 [root@racooler ~]# nmcli connection modify eno16777736 ipv6.addresses "fd00:ba5e:ba11:10::1/64 fd00:ba5e:ba11:10::cc" ipv6.method manual c
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

CentOS 7.4 系统安装 git

CentOS 7.4 系统安装 git 一、使用 yum 安装 1、查看系统是否已经安装 git [root@localhost ~]# git --version 2、yum 安装 git [root@localhost ~]# yum install git 3、安装成功 [root@localhost ~]# git version git version 1.7.1 [root@localhost ~]# git --version git version 1.7.1 4、卸载
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Mybatis-动态 SQL语句

Mybatis 的动态 SQL 语句
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

解决(Oracle)ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接 问题

ORACLE启动步骤: sqlplus / as sysdba; shutdown; startup 等于以下三个命令 startup nomount; alter database mount; alter database open; ORACLE启动步骤: sqlplus / as sysdba; shutdown; startup 等于以下三个命令 startup nomount; alter database mount; alter database open;
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Mybatis-连接池与事务

Mybatis 连接池与事务深入
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

一:SpringMVC架构流程

架构流程: 1、用户发送请求至前端控制器DispatcherServlet 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器 5、执行处理器(Controller,也叫后端控制器)。 6、Controller执行完成返回
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

小寒碎碎念

这里是菜鸡小寒的博客,希望在这里记录下自己的学习经历,但由于太菜了,恳请大家不吝赐教,多多批评指正,谢谢~
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

新装Linux无法访问域名

昨天新安装Linux,发现ping百度ping不通: 经查询,得知是系统没有配置DNS域名服务器,百度搜索DNS域名服务器列表: 编辑 /etc/resolv.conf 文件,添加查询到的DNS服务器: vi /etc/resolv.conf 添加DNS服务器地址: nameserver 202.96.128.110 保存后,再ping百度,能ping通:
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Mybatis-多表查询

Mybatis 多表查询
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Python入门学习(四)——迭代

1.迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration)。 在Python中,迭代是通过 for ... in 来完成的。 Python 的 for循环不仅可以用在list或tuple上,还可以作用在其他任何可迭代对象上。 因此,迭代操作就是对于一个集合,无论该集合是有序还是无序,我们用 for 循环总是可以依次取出集合的每一个元素。 注意: 集合是指包含一组元素的数据结构,之前学习的包括:
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Mybatis-延迟加载和缓存

Mybatis 延迟加载策略
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Mybatis-注解开发

Mybatis 注解开发
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Python exercise 7 - List comprehension

Python exercise 7 - List comprehension Let’s say I give you a list saved in a variable: a = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]. Write one line of Python that takes this list a and makes a new list that has only the even elements of this list in
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0

Python exercise 13 - Fibonacci

Python exercise 13 - Fibonacci Write a program that asks the user how many Fibonnaci numbers to generate and then generates them. Take this opportunity to think about how you can use functions. Make sure to ask the user to enter the number of number
分类: 其他 发布时间: 04-12 23:51 阅读次数: 0