- 军军小站|张军博客
搜索到与相关的文章
编程技术

ConcurrentLinkedQueue的实现原理分析

1.引言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现,本文让我们一起来研究下DougLea是如何使用非阻塞的方式来实现线程安全队列ConcurrentLinkedQueue的,相信从大师身上我们能学到不少并发编程的技

系统 2019-08-29 22:40:24 1801

编程技术

自定义控件

最近做项目见到别人写的一个分页控件不错,记录一下关于路径的问题。一、解决方案二、添加类库项目test三、添加引用System.Web四、test下添加类文件Pagination.cs五、test下添加样式文件Pagination.css(右键此文件--属性--生成操作--嵌入的资源)六、Pagination.cs文件下添加如下内容usingSystem;usingSystem.Text.RegularExpressions;usingSystem.Web;

系统 2019-08-29 22:29:40 1801

编程技术

openfire插件 servlet开发

1、首先建一个SampleServlet类,(名字随意。)继承HttpServletpackagecom.maojd.test;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequ

系统 2019-08-29 22:10:42 1801

编程技术

一、二级缓存([尚硅谷]_张晓飞_Mybatis 学习笔

1.一级缓存:基于PerpetualCache的HashMap本地缓存,其存储作用域为Session,当Sessionflush或close之后,该Session中的所有Cache就将清空。2.二级缓存与一级缓存其机制相同,默认也是采用PerpetualCache,HashMap存储,不同在于其存储作用域为Mapper(Namespace),并且可自定义存储源,如Ehcache。3.对于缓存数据更新机制,当某一个作用域(一级缓存Session/二级缓存Na

系统 2019-08-29 22:10:20 1801

Python

第十五章、python中的进程操作-开启多进程

目录第十五章、python中的进程操作-开启多进程一、multprocess模块二、multprocess.process模块三、Process()对象方法介绍四、Process()对象属性介绍五、使用process模块创建进程六、进程之间的数据隔离问题七、守护进程八、terminate方法九、pid和name属性第十五章、python中的进程操作-开启多进程一、multprocess模块multiprocess不是一个模块而是python中一个操作、管理

系统 2019-09-27 17:56:35 1800

Python

Python 基础之字符串string详解及实例

Python字符串(string)详解及代码Python的字符串可以使用单引号('),双引号("),三引号(''');三引号(''')里面,可以添加单引号和双引号,也可以通过转义序列(\)添加;字符串放在一起自动连接成为一个字符串;字符串前面添加限定词R或r,表示是自然字符串(naturestring),可以忽略里面的格式限制;在物理行末尾添加"\",可以连接下一个物理行;括号,方括号,大括号也可以一定限度的扩充物理行;具体参见代码注释;代码如下:#-*-

系统 2019-09-27 17:56:15 1800

Python

python实现植物大战僵尸游戏实例代码

开发思路完整项目地址:https://github.com/371854496/...觉得还OK的话,点下Star,作者不易,thankyou!实现方法1.引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。#1引入需要的模块importpygameimportrandom#1配置图片地址IMAGE_PATH='imgs/'#1设置页面宽高scrrr_width=800scrrr_height=560#1创建控制游戏结束的状态GAMEOVE

系统 2019-09-27 17:54:50 1800

Python

Python 读取用户指令和格式化打印实现解析

一、读取用户指令当你的程序要接收用户输入的指令时,可以用input函数:name=input("请输入你的名字:")print("Hi"+name)程序中只要有input函数就会等待用户输入完并按回车键之后才会继续往下执行代码注:input()函数接收得到的值只是字符串,即使你输入的是数字或者其他数据类型的值,它也会把数字按照字符串处理,即接收得到值只会字符串。二、格式化打印假设现在需要打印出以下格式的内容,该怎么实现呢?------------Infom

系统 2019-09-27 17:54:32 1800

Python

老生常谈Python之装饰器、迭代器和生成器

在学习python的时候,三大“名器”对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器、迭代器和生成器理解进行解释。为什么要使用装饰器什么是装饰器?“装饰”从字面意思来谁就是对特定的建筑物内按照一定的思路和风格进行美化的一种行为,所谓“器”就是工具,对于python来说装饰器就是能够在不修改原始的代码情况下给其添加新的功能,比如一款软件上线之后,我们需要在不修改源代码和不修改被调用的方式的情况下还能为期添加新的功能,在pyth

系统 2019-09-27 17:54:20 1800

Python

Python 命令行之旅 —— 深入 argparse (一)

作者:HelloGitHub-ProdesireHelloGitHub的《讲解开源项目》系列,项目地址:https://github.com/HelloGitHu...前言在第一篇“初探argparse”的文章中,我们初步掌握了使用argparse的四部曲,对它有了一个基本的体感。但是它具体支持哪些类型的参数?这些参数该如何配置?本文将带你深入了解argparse的参数们。本系列文章默认使用Python3作为解释器进行讲解。若你仍在使用Python2,请注

系统 2019-09-27 17:53:22 1800