- 博客(65)
- 收藏
- 关注
原创 第七章 Thread-Per-Message模式 这项工作就交给你了
【Thread-Per-Message模式】每个消息一个线程。为每个命令或请求分配一个线程,由这个线程来执行处理。在Thread-Per-Message模式中,消息的委托端和执行端是不同的线程。消息的委托端线程会告诉执行端线程“这项工作就交给你了” 【示例程序】 名字 说明 Main 向Host发送字符显示请求的...
2018-09-12 09:22:21 254
原创 第六章 Read-Write Lock模式 大家一起读没问题,但读的时候不要写
【Read-Write Lock模式】当线程读取实例的状态时,实例的状态不会发生变化。实例的状态仅在线程执行“写入”操作时才会发生变化。在Read-Write Lock模式中,读取操作和写入操作是分开考虑的。在执行读取操作之前,线程必须获取用于读取的锁。而在执行写入操作之前,线程必须获取用于希尔的锁。由于当线程执行读取操作时,实例的状态不会发生变化,所以多个线程可以同时读取。但在读取时,不可以...
2018-09-11 11:42:30 376
原创 第五章 生产者消费者模式
Producer 生产者,产生数据的线程Consumer 消费者,使用数据的线程【示例程序】桌子上最多可放置3个蛋糕如果桌子上已经放满3个蛋糕时糕点师还要再放置蛋糕,必须等到桌子上空出位置。客人(EaterThread)取桌子上的蛋糕吃客人按蛋糕被放置到桌子上的顺序来取蛋糕当桌子上1个蛋糕都没有时,客人若取蛋糕,必须等到桌子上新放置了蛋糕 名字 ...
2018-09-10 09:09:18 251
原创 第四章 Balking模式
【Backing模式】如果现在不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。Balking模式与Guarded Suspension模式一样,也存在守护条件。在Balking模式中,如果守护条件不成立,则立即中断处理。这与Guarded Suspension模式有所不同,因为 Guarded Suspension模式是一直等待至可以运行。【示例程序】文本工具的自动保...
2018-09-07 09:13:01 409
原创 第三章 Guarded Suspension模式 等我准备好哦
Guarded是被守护、被保卫、被保护的意思。Suspension则是暂停的意思。如果执行现在的处理会造成问题,就让执行处理的线程进行等待。Guarded Suspension模式通过让线程等待来保证实例的安全性。示例程序 名字 说明 Request 表示一个请求的类 RequestQueue ...
2018-09-04 11:07:47 411
原创 第二章 Immutable模式 想破坏也破坏不了
【2.1 Immutable模式】Java.lang.String类用于表示字符串。String类中并没有修改字符串内容的方法也就是说,String的实例所表示的字符串的内容绝对不会发生变化。因此String类中的方法无需声明为synchronized。因为实例内部状态不会发生改变,所以无论String实例被多个线程访问,也无需执行线程的互斥处理。Immutable就是不变的、不发生改...
2018-08-31 20:04:38 219
原创 第一章Single Threaded Execution模式 能通过这座桥的只有一个人
【Single Threaded Execution模式】以一个线程执行,就像独木桥同一时间内只允许一个人通行一样,该模式用于设置限制。以确保同一时间内只能让一个线程执行处理。Single Threaded Execution模式有时候也成为临界区或临界域。非线程安全的类public class Gate { private int counter=0; ...
2018-08-30 20:47:25 257
原创 序章2 多线程程序的评价标准
【安全性 不损坏对象】对象损坏是一种比喻,实际上,对象是内存的一种虚拟事物,并不会实际损坏。对象损坏是指对象的状态和设计者的意愿不一致,通常是指对象的字段的值并非预期值。如果一个类即使被多个线程同时使用,也可确保安全性,那么这个类就称为线程安全类。例如java.util.Vector类是线程安全的类,java.util.ArrayList是非线程安全的类。某个线程是线程安全的还是非...
2018-08-29 17:20:28 213
原创 图解Java多线程设计模式 序章1 Java线程
【Thread类的run方法和start方法】 JAVA程序运行时,最开始运行的只能是主线程。所以必须在程序中启动新线程。 启动线程时,要使用如下类(一般称为Thread类)public class MyThread extends Thread { public void run(){ for(int i=0;i<100;i++)...
2018-08-27 22:26:48 553
转载 Java对数组对象进行排序&JAVA中implements实现多接口
下面是一组对数组对象进行排序的代码:package com.sun;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.Comparator;import java.util.List;public class Test09 { /*...
2018-07-01 16:15:35 391
转载 Ljava.lang.Object 异常
数据显示为Ljava.lang.Object;@2a139a55问题,是因为你从数据库读出数据后,存入到list集合上时,如果你没有指定要存入的数据的类型,系统会自动给你赋一个object类型,他是所以类的鼻祖,你取出数据要进行转型,转化成你自己想要的数据类型才能显示。修改后: 初学者使用hibernate执行查询的时候,很容易遇到结果集的类型转换问题,所以明确“执行结果”里的数据类型很...
2018-06-29 22:22:36 9997
转载 Spring JPA 缺少 JAR 引起异常
记录整合中缺少 JAR 文件引起的异常 版本 Spring 3+ Hibernate 4+ JPA 1、Exception in thread "main" org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spr...
2018-06-08 10:48:29 2643
原创 java web ssh框架中数据库由mysql转换到oracle遇到的问题
在此之前项目开发一直使用mysql数据库,由于项目需要,需要使用oracle数据库1.将mysql数据库中的数据转储到oracle中Navicat Premium 非常强大,可以连接大部分主流关系型数据库,如oracle、mysql、sqlserver、sqlite等,操作方便、界面简洁。但它还有一个更强大的功能,可以跨库批量迁移数据表,有这种需求的朋友可以通过这个工具轻松实现。2.oracle大...
2018-05-31 22:38:53 1581
转载 C++的四舍五入函数
查看原文(#^.^#)C++的四舍五入函数比较:对含有小数点的数进行四舍五入是比较普遍的一种需求。在C++中也有类似的取整函数。在C++的头文件中有floor()和ceil()函数。在STL中还有round()函数。这三个函数的作用如下: 函数名称函数说明2.12.9-2.1-2.9Floor()不大于自变量的最大整数22-3-3Ceil()不小于自变量的最大整数33-2-2Round(...
2018-05-14 15:55:32 598
转载 简单说说TCP(5) --- RST
查看原文(#^.^#)RST是什么TCP首部组成如下图: RST是TCP首部6个标志位之一,表示复位,用于非正常地关闭连接。发送RST包关闭连接时,直接丢弃缓冲区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。什么情况下会出现RST包GFW(Great Firewall of China,中国国家防火墙) GFW一旦发现数据包中有敏感信息,就会伪造RST数据包,分别发送给连接双...
2018-04-08 20:37:54 422
转载 深入理解js的变量提升和函数提升
一、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。上个简历的例子如:12345678910console.log(global); // undefinedvar global = 'global';console.log(global); // global fu...
2018-04-07 11:44:02 496
原创 gettimeofday在VS上的实现
gettimeofday是Linux上的函数,使用方法如下#include <sys/time.h>const char* srs_human_format_time(){ struct timeval tv; static char buf[23]; memset(buf, 0, sizeof(buf)); // clock time ...
2018-02-25 09:41:41 3030
转载 如何快速判断一个数是不是2的幂、3的幂、4的幂
1、判断是不是2的幂将2的幂写成二进制很容易看出,2的幂的二进制只有一个1,其余全是0,如下所示:000010000...00而将2的幂的二进制减1,其二进制变为:000001111...11所以判断一个数是不是2的幂的方法为使用按位与操作,如果结果为0,则是2的幂:n & (n-1)2、判断是不是4的幂
2017-12-20 10:09:31 1233
转载 排序算法(三)--关于快速排序Partition的思考
上一章我们讲解了快速排序,其中快速排序一趟划分的算法Partition.Partition可不只用在快速排序中,还可Selection algorithm(在无序数组中寻找第K大的值)中.甚至有可能正是这种通过一趟扫描来进行分类的思想激发Edsger Dijkstra想出了Three-way Partitioning,高效的解决了Dutch national flag problem问题.接下来我
2017-12-19 09:35:28 792
转载 python numpy 数组中元素大于等于0的元素
查看原文总结了四种方式,都没有直接用到循环,希望有用。>>> import numpy as np>>> a = np.random.randint(-5, 5, (5, 5))>>> aarray([[-4, -4, -5, 2, 1], [-1, -2, -1, 3, 3], [-1, -2, 3, -5, 3],
2017-12-01 10:01:03 82588 2
转载 使用转换mnist数据库保存为bmp图片
转自:http://blog.csdn.net/u010194274/article/details/50817999转自:点击打开链接在http://yann.lecun.com/exdb/mnist/ 网上下载好数据集之后解压,得到如下四个文件。 但是这些个文件怎么用呢,参照网站上的说明,他们都是二进制文件,格式分别如下: 我这里只做tra
2017-11-30 11:16:04 701
原创 YUV编码为JPEG
将大神的代码改了一下适合最新版本API并能够完美运行/** * 最简单的基于FFmpeg的图像编码器 * Simplest FFmpeg Picture Encoder * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126.com * 中国传媒大学/数字电视技术 * Communication University of China /
2017-11-18 09:09:15 1412
原创 pip install seaborn失败
Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。 安装seaborn的方法pip install seaborn用 pip
2017-09-26 11:07:25 5015
转载 css实现鼠标悬停图片放大显示
> html> head> meta charset="UTF-8"> title>title> style> * { margin: 0; padding: 0;
2017-08-16 11:47:21 3320
转载 jpa 原生insert\delete\update\select语句
查看原文 Can not issue data manipulation statements with executeQuery()错误解决原因是这句:st.executeQuery("insert into student values('"+name+"','"+age+"','"+introduce+"')") ;我是看了书上一
2017-08-11 10:30:22 3452
转载 浏览器关闭后,Session就销毁了吗?
点击打开链接话题: 当浏览器关闭后,Session就销毁了吗?答案: 存在于浏览器上的唯一标识符JSESSIONID(sessionid)消失了,但是服务器中存放的sessionid并没有立马销毁。分析: 我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户
2017-07-31 11:24:32 655
转载 fileupload插件调用upload.parseRequest(request)解析得到空值问题
查看原文(*^__^*) 嘻嘻……java Web下接收文件常基于fileupload插件实现,其一般代码如下: index.htmlhtml lang="en">head> meta charset="UTF-8"/> title>Titletitle>head>body>form action="/test/file" enctype="multi
2017-07-15 14:39:35 1347
转载 实现"输入框"获得焦点时外边框变蓝
要想将父元素div变成focusable,只需要在元素上设置 tabindex 属性,然后通过:focus伪类设置父元素div 获得焦点时的border样式。.dianji:{ border: 1px solid transparent;}.dianji:focus{ border: 1px solid #58a6e7; outline: 0;}哪
2017-06-21 08:39:17 3886 1
原创 ajax跨域请求问题
$("#qwer").click(function(){ $.ajax({ type : "POST", url : ctx + "/test/aaa?callback=?", //url : "" dataType : 'json', success : function(data) { alert('sssss'); } }); });
2017-05-31 17:33:56 288
转载 Eclipse项目中web app libraries和 Referenced Libraries区别
Referenced Libraries是编译环境下使用的JAR包,所谓编译环境下使用的JAR包, 就是说你在Eclipse中进行源文件的编写的时候,所需要引用到的类都从Referenced Libraries这个集合中的JAR包中拿;/web-inf/lib中的JAR包是运行时环境下使用的JAR包,所谓运行时环境下使用的JAR包,就是说你在运行你的项目的时候所需要使用的JAR包的集合
2017-05-31 16:58:26 21935
原创 MINGW里面没有mingw32 make.exe
最新的mingw官网下载地址:https://sourceforge.net/projects/mingw/files/latest/download?source=files环境变量:F:\MINGW\bin在cmd里面输入命令:mingw-get install gcc g++ mingw32-make
2017-05-03 16:49:07 33409 9
转载 寻找多数元素
在原序列中去除两个不同的元素后,那么在原序列中的多数元素在新序列中还是多数元素算法基本思路:(1)在寻找多数元素的过程中,将计数器置1,遇到相同元素则计数器加1,遇到不同元素则计数器减1,一直到计数器等于0或遍历完整个序列。由此可见,计数器的值表示当前元素抵消掉不同元素后的出现次数;(2)当计数器在遍历完整个序列前就已经是0,则忽略掉已经遍历过的元素(可以看作两两抵消不
2017-04-23 11:38:45 737
转载 中缀表达式转后缀表达式
算法:中缀表达式转后缀表达式的方法:1.遇到操作数:直接输出(添加到后缀表达式中)2.栈为空时,遇到运算符,直接入栈3.遇到左括号:将其入栈4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈6.最终将栈中的元素依次出栈,输出。
2017-04-22 08:16:12 260
转载 208. Implement Trie (Prefix Tree) 前缀树的实现
implement a trie with insert, search, and startsWith methods.Note:You may assume that all inputs are consist of lowercase letters a-z.class TrieNode {public: bool isKey; TrieNode* child
2016-12-30 21:28:50 418
原创 207. Course Schedule 广度优先&&拓扑排序
There are a total of n courses you have to take, labeled from 0 to n - 1.Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a
2016-12-28 08:32:48 490
原创 Minimum Moves to Equal Array Elements I&&II
第一个问题:Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.Example:Inpu
2016-11-20 19:44:25 363
原创 unordered_map的用法
在c++11以前要使用unordered_map需要 #include//在unordered_map之前加上tr1库名, using namespace std::tr1;//与此同时需要加上命名空间[查找元素是否存在] 若有unordered_map mp;查找x是否在map中 方法1: 若存在 mp.find(x)!=mp.end()
2016-11-19 10:47:30 41300
原创 124. Binary Tree Maximum Path Sum
Given a binary tree, find the maximum path sum.For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The pa
2016-11-17 08:55:24 504
转载 Unique Binary Search Trees (6行代码 dp)
https://discuss.leetcode.com/topic/8398/dp-solution-in-6-lines-with-explanation-f-i-n-g-i-1-g-n-i/2
2016-11-04 09:07:17 351
转载 如何给二维数组排序
#include#include using namespace std; bool issmall(const float &a,const float &b){ return a} int main(){ float num[2][3]={{1.3,7.9,3.2},{4.0,5.7,4.6}
2016-09-18 08:34:08 958
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人