1 可以说已经稳定了
2 发现一个算是技巧的东西吧:在线程之间传递的类的实例,要保证能正常工作,需要类本身extends Stackable,所有方法都弄成public——我原来了写了一个数据库操作类,传给worker工作起来有问题,数据连接$conn,在类的某些方法里面获取不到,继承Stackable,所有方法都弄成public后工作就正常了。
我的目的是做一套PHP的游戏基础框架,一个简单的游戏demo;
这个demo,通讯基于socket,使用epoll——支持1024+客户端,使用多线程。
当然我希望他第一是够稳定,第二是有高承载。
计算线程只使用一个,如果需要,你可以改造成使用多个的,比如一个地图或者一个房间一个线程,并且做到避免线程之间使用同一个数据;
切换地图和房间时,要安全的把数据从一个线程转移到另外一线程(使用专门的变量);
线程之间传递数据使用Stackable,就像lib/data.php里面那样的一个class,把这个变量传递给两个worker,一个worker读,一个写就可以了,这个是我目前发现的最佳方式。
运行了3个多小时之后coredump了,连接了37万次,数据库也有9万多数据。
总的来说,稳定了很多,还是算不上稳定。
下载地址:http://download.****.net/detail/leinchu/6920069 (免积分 )