自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我们的征途是星辰大海

我的GitChat : https://gitbook.cn/gitchat/author/5aa87360f09ada6c2d5d0533

  • 博客(18)
  • 资源 (1)
  • 问答 (6)
  • 收藏
  • 关注

原创 多线程——Task

背景:                以前想用Semaphore来处理并发访问资源的问题,后来把方案拿给前辈们看的时候,他们说这样也行,但是最好用Task处理,比较简单。所以,顺便学习了下Task.使用task类创建并执行简单任务等待任务的完成并获取返回值使用Co

2015-01-25 13:35:34 2296 10

原创 ThreadPool执行异步操作

使用ThreadPool_类执行异步任务/* ThreadPool 类是一个静态类型类,使用ThreadPool 类执行异步时通常调用ThreadPool 的 QueueUserWorkItem 方法,这个方法有一个重载版本,如下:public static bool QueueUserWorkItem(WaitCallback callBack); public

2015-01-25 13:20:08 3387 7

原创 WaitHandle——使用AutoResetEvent

区别ManualResetEvent:     使用AutoResetEvent和使用ManualResetEvent是完全相同的,只有一点区别:在使用autoresetevent时,在调用waitOne后,会自动执行到一个reset方法。  AutoResetEvent的waitone相当于将ManualResetEvent.waitone和reset合并为一个方法执行。

2015-01-21 22:00:37 1748 5

原创 WaitHandle——使用Semaphore

semaphore也继承自waithandle,它用于锁机制,与Mutex不同的是,它允许指定数量的线程同时访问资源,在线程超过数量以后,则进行排队等待,直到之前的线程退出。    Semaphore很适合应用于web服务器这样的高并发场景,可以限制对资源访问的线程数。    Monitor与monitor都有一个锁持有者,而semaphore则不需要,因此通常将sempaho

2015-01-21 21:12:18 1933 4

原创 WaitHandle——使用ManualResetEvent

信号量机制    使用ManualResetEvent和AutoResetEvent都继承自EventWaitHandle(继承自waitHandle)。EventWaitHandle对象有两个状态:收到信号(signaled)和未收到信号(nonsignaled);EventWaitHandle中的set和reset方法分别用于将eventwaitHandle对象的状态设为收到信

2015-01-21 20:10:35 2143 4

原创 WaitHandle——使用Mutex

替代object加锁方式   使用System.object对象作为线程同步的工具,建立了一个基本的锁机制,确保资源只能同时被一个线程所访问。    但是这个对象不作任何其他用途,知识用于锁机制。   如果有一个类型可以专注于为线程同步的锁机制和信号量机制提供服务,那么上面的代码就可以简化。   .net中提供了更强大的system.threading.wa

2015-01-20 21:12:03 2342 6

原创 死锁的产生与检测

产生死锁    在操作系统中,我们可能接触过两个进程争抢资源,互不相让,然后产生了死锁,这时候,我们可以用银行家算法来分配资源。下面,我们先模拟产生死锁: #region 试图产生死锁的代码 // static void T1(Program p) //{ // //主线程占有了mainRes

2015-01-20 19:37:05 1531 6

原创 使用Monitor对资源进行保护(二)

使用Lock语句     首先来看一下出现的问题:  接着我们用Lock来解决这个问题:创建线程安全类型   上面的类型Resource不是类型安全的,它的内部并没有采取线程安全(Thread-safe)的措施。   前面的线程同步时由类型的客户端program来实施的,之所以可行,完全是因为p

2015-01-20 19:30:08 1717 4

原创 使用Monitor对资源进行保护(一)

首先,来看下使用system.threading.monitor对资源进行保护的思路: 即,使用排它锁,当线程A需要访问某一资源时,对其进行加锁,线程A获取到锁以后,任何其他线程如果再次对资源进行访问,则将其放到等待队列中,知道线程A释放锁之后,再将线程从队列中取出。  主要的两个方法:EnterExit获取锁

2015-01-20 19:10:39 1687 5

原创 线程的基本操作(二)

前台线程和后台线程   默认情况下,新建的线程为前台线程(foreground thread),可以通过thread类的实例属性IsBackground来查看。将IsBackground设置为true时,则将线程设置为了后台线程。(Background thread).    前台线程和后天线程区别:所有前台线程执行完毕之后,应用程序进程结束,而不论后台线程是否结束

2015-01-20 18:56:04 1548 5

原创 线程的基本操作(一)

查看当前线程名称——name属性使用name属性,可以查看当前线程名称,如下:暂停当前线程——Sleep方法   Thread类的sleep静态方法用于将当前线程暂停指定的一段时间。   它有两个重载方法:Publicstatic void Sleep(int millisecondsTimeout);Public

2015-01-19 22:09:24 1707 5

原创 多线程——创建新线程

一,简单单线程            线程是代码的执行序列或者执行路径。线程与进程的概念有一些类似,它类似于一个轻量级的进程;一个操作系统可以运行多个进程,一个进程内可以运行多个线程。每个应用程序至少运行在一个线程上。当只有一个线程时,称作单线程应用程序,该线程由系统自动创建。 下面看一个简单单线程例子:如上图,本短程序从入口函数main进入

2015-01-17 21:29:43 2460 7

原创 编程方式操作WorkFlow

背景:               刚进某地产公司,就是做一个工作流的小Demo,就是画一条采购的工作流,然后代码实现它。             刚开始的时候真的其实挺迷茫的,然后就从自己比较熟悉的实体做起,接着是controller,然后是view,代码都是参考过N份的,最后代码写的差不多了,然后才开始画一条流程。流程图就画了前后有6份,然后改来改去,还好有各位哥哥

2015-01-12 21:22:29 2444 7

原创 2014年小结——没有最好,只有更好

今年是成长比较迅速的一年,这一年经历了太多,也学习了太多,要是让我总结的话,都不知道该从什么地方说起,所以,还是从后向前说吧。         今年年底,来北京这边做项目了。刚来这边,很不适应,吃的,住的,陌生人,等等。但是我的不适应期很短,大概一两天就过去了。之后就是做考核项目,小Demo,上周终于完成,计划下周改Bug。 刚开始出来的时候,本来以为大一点儿的公司,开发正规,文档齐全

2015-01-11 14:15:05 2055 17

原创 JQuery的AJAX调用——序列化

一,使用serialize()方法序列化表单元素值   使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式如下:   $(selector).serialize()   其中selector参数是一个或多个表单中的元素或表单元素本身。 

2015-01-10 18:52:43 1981 6

原创 JQuery的AJAX调用(二)——AJAX方法

一,使用serialize()方法序列化表单元素值    使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式如下:     $(selector).serialize()     其中selector参数是一个或多个表单中的元素或表单元素本身。

2015-01-10 18:28:36 2187 5

原创 JQuery的AJAX调用(一)——加载传递数据

一,load方法异步请求数据       使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:       load(url,[data],[callback])      参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。

2015-01-10 18:21:30 2641 4

原创 SQL两种简单分页查询方式

以前我们或许都用过了linq的skip and take方式进行分页查询,但是很少自己写sql的分页查询,因为大多数时候,我们都是在调用别人的方法。             最近看到一个文档,感觉方法里面实现的分页查询进入数据库调用的时候,实际最底层调用的还是SQL的分页查询,例如,我们用linq写个分页查询,转成sql表达式后发现:                

2015-01-03 11:21:39 3482 5

ble设备扫描器.apk

ble设备扫描器.apk,目前只有扫描周边BLE设备的功能,又需要其他功能的,可以私信我。

2016-09-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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