- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 线程之间的通信--信号量,共享变量
昨天朋友提出了一个问题:写两个线程,其中一个线程打印1-52,另一个线程打印A-Z,打印顺序应该是12A34B56C……5152Z。可以通过信号量来解决线程之间的通信。方案1(信号量)线程1打印数字,线程2打印字母。线程1每执行循环两次,执行线程2循环一次。采用信号量做两个线程间的通信,CountDownLatch来保证线程1,线程2循环体的执行顺序。注:这个方案核心在于当前线...
2018-09-09 16:33:03
2929
原创 Netty TCP方式的集群方案
1、现状IM服务端在web服务的一个线程下启动,客户端通过tcp连接到服务端后,需要发送认证信息(否则一段时间后,连接关闭),连接认证通过之后,将用户id和连接的context存储到服务端的一个ConcurrentHashMap中。当服务端需要中转消息时,从这个缓存中取,如果消息路由的目标用户在线,路由消息(必须由服务端保证送达的消息在发送失败存离线)。2、需求高可用,负载均衡,扩展性...
2018-08-31 11:14:10
15525
7
转载 html+js日历
var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二"); var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31); var days = new Array("日","一", "二",
2017-09-11 00:04:11
907
原创 js给iframe动态设置src和参数参数传递问题
最近开始接触到一个挺老项目,其中涉及到了一些jsp代码编写,其中遇到一个问题比较麻烦,就是在jsp页面中iframe 的src属性动态修改的问题页面:hello.jsp,table.jsp页面上有三个标签:text,button,iframe实现的功能是:点击button标签,将text标签内容作为src 的请求参数传递给服务端的jsp页面,在hello.jsp中动态显示子窗口表格
2017-09-09 17:16:52
55524
1
转载 js 的中文转换为拼音
由于需要做数据修复,为数据库的表增加拼音字段,就找前端要来相关的代码,出处未知,下面的代码可以直接使用var PinYin = { "a": "\u554a\u963f\u9515", "ai": "\u57c3\u6328\u54ce\u5509\u54c0\u7691\u764c\u853c\u77ee\u827e\u788d\u7231\u9698\u8b
2017-06-14 11:12:02
15826
原创 centos 6.5安装使用 redis
参考官方指导https://redis.io/download1、准备Download, extract and compile Redis with:$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz$ tar xzf redis-3.2.9.tar.gz$ cd redis-3.2.9$ make
2017-06-02 11:32:42
349
原创 mongodb,$where内嵌脚本
在使用mongodb的时候,有遇到这种情况,查找某个字段长度大于10的记录。由于mongodb是json文档结构,要找出有问题的数据也不容易,有些情况下,可以划分为垃圾数据,1、一些字段的长度超出不正常范围的时候。2、类型与你预想的不一致,如应该为NumberInt的字段,有字符串,或者其他类型。这些情况下我们可以使用$where将这些记录筛选出来。一、shell脚本的
2017-03-30 10:21:18
1209
原创 mongodb 高级部分 group by case when select distinct substr(sdf,0,6)
一、gourp by 和case when 的混用1、且看一张表格,表格的结构是(其中一条数据){ "_id" : ObjectId("57876215b522253ff42e3346"), "type" : NumberInt(0), "userId" : NumberInt(101920), "pointsNum" : NumberInt(50), ...
2017-02-17 10:40:13
8715
原创 MongoDB 的shell脚本基础进阶
MongoDB 的shell脚本基础进阶背景:mongodb的脚本有如oracle,mysql 数据库中的存储过程,以前使用Oracle数据库的时候,经常依赖存储过程执行定时任务,比如做定时统计任务,也可以通过程序调用存储过程实现数据库的编程,减少服务器程序与数据库的数据交互量。目前在MongoDB用到比较多的是,使用脚本规范表数据。一、准备工具1、安装mongodb2、安装m
2016-09-20 18:22:57
3783
原创 java 将list转换为map 的泛型通用方法
将list转换为map背景:最近使用比较多的mongodb,由于其缺乏表连接的查询,导致我们经常需要将表数据查询到内存中,然后进行匹配连接,组成需要的数据格式,匹配的方式通常是:list1中有list2需要的字段,于是将list1转换为map,遍历list2,从map中找到对应的数据字段。当面对大量的这样的业务操作的时候,一个个写将list转换为map的小代码段,是非常浪费时间,容易出错且...
2016-09-16 14:08:16
45698
原创 pjsip 在vs2015中使用时提示无法找到符号
在编译和使用pjsip库的过程中,本人也遇到了一些问题按照官网的编译,编译过程是可以成功,并且编写成为指定的lib,但是我们在使用该库的过程中,即使导入了指定的lib,编译的时候还是会有链接找不到实现的错误信息,见如下:通过google,最终在msdn上找到了如下的答案:即是在包含头文件代码的后面,增加一行代码#pragma comment (lib, "W
2016-09-07 09:43:13
2022
原创 MongoDB 基础
使用MongoChef软件,编写shell脚本的方式来执行操作,在软件中使用IntelliShell,做相关配置后即可使用,如图使用mongodb自带的客户端工具是相对应的创建一个表user一、基础操作1、插入db.user.insert({"name":"小王","age":20});2、查找db.user.find({"name":"小王"});
2016-05-25 16:50:43
683
原创 java 基础拾遗
1、C/C++ goto 的实现,java中保留了goto关键字,但是已经没有继续使用,可以使用label(标签)和continue,break使用label1: for (int i = 0; i < 2; i++) { for (int j = 0; j < 10; ++j) { if (j > 2) { break label1; } System
2016-03-30 20:22:15
672
转载 sql server 创建job
此文章已多次转载,无法确定原作者创建作业总结:①在安装数据库的服务器中开启服务:SQLServerAgent;②在数据库中创建存储过程;③调用这个存储过程,添加指定的job。1、在数据库中创建存储过程: --数据库备份jobALTER proc [dbo].[p_createjob] @jobname varchar(100), --作业名称 @sql varc...
2016-02-19 15:23:52
2492
原创 Oracle数据库之group by:按自定规则分组
在数据库分组查询group by 中,默认的方式有按某一个字段的均分查询(如按班级编号分组,每一个班分组,每两个班分组。。。)在这里写出一种按照自定义规则分组的方式:以下语句,按自定义的格式将大于等于18个班级的学生分为4类,统计每个类别的学生数量。当然,同类未必要班级号相连,分类条件写在when ...then之间 then之后的标志作为分类名称。表格:create tab...
2015-11-23 16:36:07
4583
原创 Oracle数据库之外连接和分组查询:left,right,full join 和表连接
数据库开发时经常要编写过程来优化数据库的增删该查和一些简单的业务操作,或在java中调用,或定义job按时执行(如每天,每周,每月...的统计任务),其中查询操作最有可能面临性能瓶颈。因此,我们通常希望(遇过按月查询几亿条数据的情况)查询操作能够尽可能地快,减少对数据量大的表查询次数将极大地提高数据库查询的效率。使用left,right,full 和分组函数混搭将极大的提高查询效率,查询的
2015-11-23 16:25:56
3476
原创 浮点数强制转换为整数高效替代方法
//浮点数转换为整数 == [i=(int)f],但效率会比其高出很多inline void F_T_I( const float f, int i ){ _asm { fld f; fistp i; }}
2015-11-23 16:17:07
2903
原创 BlockingQueue一些特性
特性:BlockingQueue为空时,从BlockingQueue取值的操作将会被阻断进入等待状态,直到BlockingQueue中有值才会被唤醒, BlockingQueue为满时,往BlockingQueue存储的操作也会被阻断进入等待状态,直到BlockingQueue不为满才会被唤醒继续操作。可以使用此特性对其他线程控制,节约CPU资源。Blockin
2015-11-20 15:20:09
693
转载 java的守护线程与非守护线程(用户线程)
Java的线程机制,在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)估计学过Unix开发但是没有细致学习Java的同学们会疑惑了,操作系统里面是没有所谓的守护线程的概念,只有守护进程一说,但是Java语言机制是构建在JVM的基础之上的,意思是Java平台把操作系统的底层给屏蔽起来,所以它可以在它自己的虚拟的平台里面构造出对自己有利的机制
2015-10-21 14:23:05
523
原创 oracle job的相关操作
1、在sql中,首先要在数据库中创建一个存储过程PACK_YWTJ.ywtjWeek可以通过sql语句执行,达到添加存储过程的目的,另外添加存储过程的方法不赘述。2、在sql中,创建job,使数据库每隔一段时间执行一次该存储过程--定时执行jobdeclare njob3 number;begin dbms_job.submit(job =>njob3,
2015-10-09 10:45:33
373
原创 Oracle 过程中的select into 中查询记录数不是1导致异常的解决办法
在oracle中存储过程中使用select...into语句为变量赋值的时候,如果查询返回的记录为空或者多行的时候,就会异常退出。解决办法:使用聚合函数处理例如:Max如果仅仅使用select a.dwbh,a.jdmc into v_xzqhh,v_szmc from ydjdglb a where substr(a.dwbh,0,6) = sub
2015-10-08 16:19:26
4118
原创 Oracle数据库timestamp选择时间间隔大于30分的记录 和 INTERVAL DAY TO SECOND数据类型详解
Oracle语法: INTERVAL '{ integer | integer time_expr | time_expr }' { { DAY | HOUR | MINUTE } [ ( leading_precision ) ] | SECOND [ ( leading_precision [, fractional_seconds_precision ] ) ] } [ TO
2015-09-29 09:40:32
6304
原创 sql中where 1=1 和where 0=1的作用
where 1=1可以很方便地规范语句,使得条件查询拼接字符串的时候,可以不用考虑使用了哪个条件作为第一个条件,where 0=1不会返回任何记录,只会返回表结构。可用于快速建立表:create table table2 asselect * from table1 where 0=1;性能分析: where 1=1会被数据库优化掉,因此无需考虑性能损耗。wh
2015-09-22 11:08:07
1088
原创 Myeclipse alt+/ 无提示 显示No Default Proposals 解决办法
突然发现alt+/无法出现提示,使用.页没有办法出来提示,到处查看了。我霸气的重装Myeclise.结果还没有好。终于找到原因了:Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced 里的「Select the proposal kinds contained in the 'default' con
2015-09-10 15:01:30
1774
转载 fstream的使用和打开时存在中文中文路径可能失败的问题,其他中文问题都可以尝试采用如下方法
fstream 和中文路径 有时候用ifstream或ofstream打开带有中文路径的文件会失败。解决办法:1、使用C语言的函数设置为中文运行环境setlocale(LC_ALL,"Chinese-simplified");2、使用STL函数设置为系统语言环境std::locale::global(std::locale(""));当然选2啦!另转
2015-05-20 14:44:59
679
原创 JAVA学习(2)——输入学生的5门成绩,计算平均成绩
import java.util.Scanner;public class Demo01 { public static void main( String[] args ) { System.out.println( "请输入学生姓名" ); Scanner input = new Scanner(System.in); String name = input.next()
2015-01-21 22:22:12
14961
原创 Java学习(1)——第一个JAVA程序
//my first java programpackage it.java.base.ch01;public class HelloWorld { public static void main( String[] args) { System.out.println( "Hello World! " ); }}
2015-01-21 22:18:13
361
转载 C++ static、const和static const 以及它们的初始化
const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。 static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。 在C++中,sta
2014-12-08 11:46:45
335
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人