聊天室 - Netty WebSocket初试

背景 最近项目上面需要用到聊天室,在Ajax轮询和WebSocket之间考虑了下,决定还是采用WebSocket来实现这个项目。采用WebSocket实现,那么就必须进行服务器的技术选型,主要考虑的有Java(Netty/Jetty)、node.js(socket.io)、PHP(swoole/w...

2019-03-20 11:38:44

阅读数 32

评论数 0

百度umeditor中js的坑爹问题

问题还原 上午给老板展示的时,一直正常运行的网页一直在加载中,怎么都无法打开。使用chrome的开发者模式进行排查时,发现百度的开源编辑器umeditor中的js文件一直无法正常加载,返回状态码为206,每次刷新加载出来的文件大小都不一样。 怀疑1 最开始我怀疑的是网络的问题,因为一直以来该网页都...

2019-01-28 19:13:18

阅读数 50

评论数 0

NGINX开启GZIP压缩

为什么要开启GZIP? 主要是在于HTTP传输主要以文本为主,尤其是大量的JS/CSS/HTML还有图片等等,那么开启了GZIP后,就可以在传输的过程中对内容进行压缩,既减少了对于带宽的压力,还可以提升用户打开网页的速度,何乐而不为呢? 我为什么要开启GZIP? 没错,我开启GZIP的根本原因和上...

2019-01-28 18:39:44

阅读数 34

评论数 0

使用FFMPEG进行音视频编解码(C++) 0.简介

FFMPEG介绍     FFMPEG是一个开源的编解码软件,读...

2018-08-30 18:51:13

阅读数 1394

评论数 0

最大优先队列与堆

在《算法导论》中对队的介绍在第6章。堆排序的性能不是特别好,远远不如快速排序,但是在操作系统中的优先调度里面需要的优先队列结构中采用堆有着不错的性能。 堆 什么是堆?堆可以理解成一种特殊的树,这种树的结点永远大于它的子节点。如: 第一眼看上去就是一颗普通的二叉树,其实仔细的看就会发现...

2018-03-21 23:17:04

阅读数 84

评论数 0

Java日期时间字符串、Date和长整型毫秒Unix时间戳之间的转换

概述 在项目中经常会用到时间的转换,尤其是日期时间字符串与Date类型的转换。例如:在前台JSP展示时间如果是Date类型查看比较不舒服;如果在SpringHibernate中如果查找日期时间类型的条件必须要用Date类型传值。所以,今天写了一个通用的Java转换类,有需要的可以直接拷贝在项目中...

2018-03-14 22:18:03

阅读数 2814

评论数 0

关于mui框架中onclick、href标签失效问题

MUI框架我觉得是个不错的框架,至少在移动端用起来还是很不错的,减少很多的工作量。不过在使用的时候需要注意2点: 1.滚动页面时需要采用MUI中的方法滚动,因为今天没有遇到,以后可能会总结的写一些。 2.onclick/href方法失效。 关于onclick、href方法失效,还并不是完全失...

2018-03-06 17:28:16

阅读数 8073

评论数 0

采用nginx+chimee搭建网络摄像头直播系统

概述 公司最近需要一套直播系统,要求是网络摄像头进行录制,然后可以在网页上无插件进行直播,要求同时支持PC端和移动端进行直播,最后我决定采用hls协议,利用nginx+chimee搭建网络摄像头直播系统。 搭建网络摄像头直播服务器 0.因为需要用到nginx-rtmp-moudle模块,...

2018-02-27 15:37:13

阅读数 272

评论数 0

Java多线程(11) Fork-Join框架

概述 在JDK1.7版本以后,引入了一个新的分布式Fork-JoinJDK框架。这个框架的特点就是可以把任务线程分布到每个CPU核上,如果4核的CPU,那么如果创建一个线程,那么这个线程就在CPU的一个核上,如果创建3个线程,呢么就分布到CPU的3个核,如果想要创建大于CPU核的线程,对不起,不...

2018-02-26 20:31:37

阅读数 76

评论数 0

Java多线程(10) 控制任务组

概述 执行器服务作为线程池,不仅仅可以提高执行任务的效率,还可以控制一组相关任务。例如,可以在执行器中使用shutdownNow方法取消所有的任务。 控制任务组 java.util.concurrent.ExecutorService T invokeAny(Collection...

2018-02-26 19:33:17

阅读数 153

评论数 0

Java多线程(9) 定时线程任务

概述 在上一章中写到执行器的后2个方法是预定执行或重复执行而设计的方法,这是一种允许使用线程池机制的java.util.Timer的泛化。 部分API详解 java.util.concurrent.Executors ScheduledExecutorService newSchedu...

2018-02-25 17:04:51

阅读数 50

评论数 0

Java多线程(8) 线程池

概述 春节期间本有雄心壮志,奈何初二晚上遇上感冒。今天中午本打算继续冬眠,忽然女友一条微信让我不仅反思自己,不可再浑浑噩噩,于是奋起,开始继续努力,瞬间腰不疼了,腿不麻了,倍有精神了,看来精神的确可以驾驭肉体,愿2018是一个成功之年。 线程池 构建新的线程因为设计与操作系统的交互所以是有代...

2018-02-25 15:53:11

阅读数 67

评论数 0

Java多线程(7) Callable与Future

概述 之前有很长时间没有写博客了,一方面生活中的琐事让人无法静心,另外一方面工作中也比较忙,最重要的是在上一章打算写一下线程安全的集合,《Java核心技术》中讲解相当浅,而且太过杂乱。在网络上面搜罗了些文章,但是却依然无法获得其要领,即使略懂一二也无法组织语言,所以就暂时告一段落,先继续研究接下...

2018-02-07 22:38:00

阅读数 49

评论数 0

Java多线程(6) 阻塞队列

概述 终于进入了新的篇章,阻塞队列。在线程的同步这一节,知识点比较多,因为这些都是基础,但是在实际编程当中应该尽可能的远离底层架构,直接使用造好的轮子。对于许多线程问题,可以使用一个或者多个队列以优雅、安全的方式将其形式化:生产者线程向队列中插入元素,消费者线程则用来取出他们。(生产者和消费者是...

2018-01-25 22:54:14

阅读数 65

评论数 0

Java多线程(5) 线程的同步-下

概述 线程的同步终于要进入了尾声了,我曾经想着把线程的同步划分为一篇来讲,结果我再查阅资料的时候,感觉其他博客放在一起真的不太想看,所以我就拆开来讲。本章中的代码量应该也不太多,估计是扯得可能比较厉害。 监视器 监视器是为了使程序员在不考虑如何加锁的情况下,就可以保证多线程的安全性。概念...

2018-01-11 20:08:44

阅读数 146

评论数 0

Java多线程(4) 线程的同步-中

概述 上一章说明了多个线程对同一变量进行读写时,如何解决竞争条件,也就是使用了线程锁。线程锁保证了每条语句都可以单独执行,保证了语句的原子性。但是,在实际应用中可能还要根据实际情况对线程进行某些约束的检查,例如在银行转账的过程中,如果卡中的余额不足以支付转账的余额,那么是不允许转账的。(我没有其...

2018-01-07 17:51:17

阅读数 156

评论数 0

Java多线程(3) 线程的同步-上

概述 最近比较忙,线程的同步其实在12月上旬就完成的差不多了,但是一直因为项目的关系,所以没有办法及时的发出来,在新的一年里会努力的扩充自己的技术栈。在多线程的实际应用中,多个线程经常需要共享对同一数据的存取,这样的情况就称为竞争条件。假设i的值为0,A线程执行i=i+1,B线程执行i=i+2,...

2017-12-13 00:09:26

阅读数 57

评论数 0

Java多线程(2) 线程的状态和属性

概述 线程的状态和属性这篇比较尴尬。第一,这块实际更多的属于操作系统的部分,至少需要操作系统方面的基础知识作为铺垫;第二,这块代码部分不多,如果用代码不好表达,如果干讲,我也不太能够讲明白;第三,我实际用的地方很少,不想前面的线程启动和中断,也不像后面的线程同步,最多最多就是设置个优先级,一般都...

2017-12-04 22:10:27

阅读数 98

评论数 0

Java多线程(1) 线程的启动和中断

概述 去年写过一篇关C/C++的多线程介绍,现在回看,简直是一塌糊涂。以后有机会,会重新改写的。最近开始看Java多线程,所以打算边输入边输出的方式来写这一套读书笔记。其实,多线程在实际项目中已经用过很多了,私以为网络编程和多线程编程是一个程序员熟悉一门语言最基本的功底了。安卓程序员还好,在4....

2017-11-29 22:10:57

阅读数 105

评论数 0

不同html页面 相同部分代码的提取

问题重现在编写html页面时,遇到一个问题,在某个站点中绝大部分页面都拥有着相同的导航栏,并且这个导航栏中的菜单和连接,将会不断的改变。虽然说,可以在每次改变以后进行逐个页面的更改,但是也显得十分麻烦,而且容易落下某个页面,造成不便。

2017-11-23 09:17:39

阅读数 3741

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭