编程笔记
zhengwenwei_123
这个作者很懒,什么都没留下…
展开
-
资源的有序访问问题
在多线程程序中,使用锁来保证资源的有序访问,即一个操作不会导致另一个正在进行的操作无效。举个例子,一个操作正在遍历一个list,而另一个操作却把这个list clear掉了,导致迭代器失效。然而这个问题并不仅仅是多线程才需要考虑的问题。举个例子,当一个操作在遍历list,针对每个元素进行某一个调用,而这个调用破坏了list的结构,那么当它访问时,迭代器也就失效了。继续使用迭代器就会出现错误。仔细的编程保证操作的顺序正确并不能解决问题。可能元素的处理的调用将利用客户端写的代码,而这些代码如果可能对你正在处理的原创 2010-10-13 14:41:00 · 619 阅读 · 0 评论 -
OBJECT WHERE IS IT?
<br />http://www.cnblogs.com/Alexander-Lee/archive/2010/08/22/1805735.html原创 2010-10-13 16:31:00 · 174 阅读 · 0 评论 -
线程的生命期
在面向对象的编程中,多线程程序一般会视每一个线程为一个对象,对象的生命期和线程的运行周期一致。那么如果在这个线程的某个调用中delete这个对象,那么造成的影响是什么?对象的方法在对象被delete的时候,其内存也被释放,所以不能对一个析构了的对象调用其方法,否则会出现内存错误。同样,如果这个线程对象试图delete自己,那么必须是对该对象的最后一次调用的最后一个语句,否则就会出现问题。多线程程序派生的线程对象大部分是为了处理某些并行的类似任务,当它们处理完任务的时候自行delete自己,这是没有问题的。如原创 2010-10-12 17:05:00 · 273 阅读 · 0 评论 -
勿做空心人
<br />“何况,就目前来说,软件行业还算是一个较为公平的行业了:只要有聪明才智+刻苦勤奋,就能够过上中等以上水平的生活。”原创 2010-10-13 15:26:00 · 242 阅读 · 0 评论 -
STL TIPS
写C++程序无可避免的会使用到STL,好的,这并不困难,需要记住的就是:1.多线程程序使用LOCK来同步访问;2.在手工循环中避免迭代器失效(注意调用链上可能产生副作用)而且到目前为止用的最多的就是list和map,只是想要让程序实现功能的话就无非这样就可以了。但是STL包含的内涵显然要多很多,为了编写出更漂亮的代码,需要多考虑一些东西:1.使用算法优先于手工循环,这样可能效率更高,并且减少出错。.list和map很好,经常够用了。但是有理由需要使用其他的序列容器。首先list不提供随机迭代器,这样导致相应原创 2010-10-19 17:57:00 · 221 阅读 · 0 评论