i++ 不是线程安全的操作,因为它不是一个原子性操作. 那么,如果我想要达到类似 i++ 的这种效果,我应该使用哪些集合或者说工具类呢? 在 JDK1.5 之前,为了确保在多线程下对某基本数据类型或者引用数据类型运算的原子性,必须依赖于外部关键字 synchronized,但是这种情况在 JDK1.5 之后发生了改观,当然你依然可以使用 synchronized 来保证原子性,我们这里所说的一种线程安全的方式是原子性的工具类,比如 AtomicInteger.AtomicBoolean 等.这些…
考试前预感到自己会滚大粗 然后发现确实滚了个大粗 ==== €€£ WARNING ==== 因为是后补的所以更新速度比较慢 最后决定把半成品扔出来 预计本周末放假会更完吧 2019.2.25 upd: 更完辣~ ==== ==== day -1 上午考试 考了三道sb题 T1是一道类似时间复杂度的小模拟 T2是个垃圾并查集 T3是个垃圾数据结构上贪心 为了防止掉太多RP果断T3撸了个暴力上去 结果和预计完全一样 下午无聊和神象江伯&robbery瞎**复习, 在LOJ打板子 打了个Kruska…
IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了.Linux中,提供了select.poll.epoll三种接口函数来实现IO复用. 1.select函数 #include <sys/select.h> #include <sys/time.h> int select(int nfds, fd_set *readfds, fd_set *writef…
如果有人问你,GET和POST,有什么区别?你会如何回答? 最普遍的答案 回来之后寻思了很久,他到底是想问我什么?我一直就觉得GET和POST没有什么除了语义之外的区别,自打我开始学习Web编程开始就是这么理解的. 可能很多人都已经猜到了,他要的答案是: 1. GET使用URL或Cookie传参.而POST将数据放在BODY中. 2. GET的URL会有长度上的限制,则POST的数据则可以非常大. 3. POST比GET安全,因为数据在地址栏上不可见. 但是很不幸,这些区别全是错误的,更不幸的是…
这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学习IOS自动布局的朋友可以看看.自动布局很强大. 转载请注明来源:http://www.cnblogs.com/zer0Black/p/3977288.html 作者:zer0Black 这篇教程绝对的最好的学习IOS自动布局的文章,没有之一 原文地址:Beginning Auto Layout T…
我们在给app切图的时候不知道告诉ui启动图标切多大,其实你新建一个android项目就知道应该切多大了.新建一个项目会产生几种大小的启动图标. 我把各个文件夹下的ic_launcher.png文件都查看了下大小,得出如下值: 1.drawable-hdpi  72*72 2.drawable-mdpi  48*48 3.drawable-xhdpi 96*96 4.drawable-xxhdpi 144*144 看到上面的参数我相信大家都知道启动icon切多大了.…
epoll是linux下高性能的IO复用技术,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率.另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了.epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外,还提供了边缘触发(Edge Triggered),这就使得用户空间程序有可能缓存I…
本文主要对GET与POST基本区别进行汇总并掌握,如有错误与遗漏之处,请指出. 文章出处:http://www.cnblogs.com/useryangtao/ 1. HTTP HTTP(即超文本传输协议)是现代网络中最常见和常用的协议之一,设计它的目的是保证客户机和服务器之间的通信. HTTP 的工作方式是客户端与服务器之间的 "请求-响应" 协议. 客户端可以是 Web 浏览器,服务器端可以是计算机上的某些网络应用程序. 通常情况下,由浏览器向服务器发起 HTTP 请求,服务器向浏…
特点: FreeRTOS任务不容许以任何方式从  任务中 实现函数中返回--绝对不能有return语句,也不能执行到函数末尾.如果任务不再需要,可以显示的删除. 一个任务函数可以用来创建若干个任何--创建出来的任务均是独立的执行实例,拥有自己的栈空间,以及自己的自动变量 1. 创建任务  --  xTaskCreate函数 参数说明 第三个参数 告诉内核为它分配多大的栈空间,指能保存多少个字word,而不是字节 优先级数值越低,表示越低的优先级.0是最低优先级. 调度器总是选择具有最高优先级的可…
由于GIT刚刚开始使用不久,经常会在Merge时出现没有change-id的情况,在结合gerrit使用时,经常出现不能提交的情形,使得自己很困扰.最近有次熬夜加班,在代码完成后,由于多人在很短时间内提交多次,造成提交不上去的情况,当时那个慌啊.还好有给力的大神帮忙处理,突然觉得有必要好好学学Git了,不能仅仅满足于图形化工具的使用. 工作区.版本库.缓存区的关系与区别,如下图: 工作区:左侧的工作区就是我们日常编辑的部分 暂存区:使用git add XXX后的部分 版本库:使用commit后的…