问题列表 - 第28231页

kill -9和生产应用程序

哪个问题可能会导致kill -9生产应用程序(在linux中准确)?

我有应用程序做一些定期工作,停止这些需要很长时间,我不在乎是否会中止某些工作 - 工作可以通过新流程完成.那么我kill -9可以立即使用它来停止它,否则会导致严重的操作系统问题?

例如,Unicorn将其用作正常的工作程序:

当您的应用程序出错时,BOFH可以"杀死-9"失控的工作进程,而不必担心会撕毁所有客户端,只需一个.

但是这篇文章声称:

kill(1)的-9(或KILL)参数永远不应该在Unix系统上使用

PS:我知道kill -9应用程序无法处理,但我知道对于应用程序来说它不会导致任何问题,我只是感兴趣它可以在操作系统级别上引起一些问题吗?shared memory segments active, lingering sockets对我来说听起来很危险

linux operating-system kill unicorn

6
推荐指数
1
解决办法
454
查看次数

序列图中消息类型之间的差异

有什么区别?

自我消息递归消息可重入消息

谢谢

uml sequence-diagram

4
推荐指数
1
解决办法
5310
查看次数

7
推荐指数
1
解决办法
2137
查看次数

二进制文件到字符串

我正在尝试将二进制文件(例如可执行文件)读入字符串,然后将其写回

FileStream fs = new FileStream("C:\\tvin.exe", FileMode.Open);
BinaryReader br = new BinaryReader(fs);
byte[] bin = br.ReadBytes(Convert.ToInt32(fs.Length));
System.Text.Encoding enc = System.Text.Encoding.ASCII;
string myString = enc.GetString(bin);
fs.Close();
br.Close();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] rebin = encoding.GetBytes(myString);
FileStream fs2 = new FileStream("C:\\tvout.exe", FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs2);
bw.Write(rebin);
fs2.Close();
bw.Close();
Run Code Online (Sandbox Code Playgroud)

这不起作用(结果具有完全相同的字节大小但无法运行)

如果我做bw.Write(bin)结果没问题,但我必须将它保存为字符串

c# string binaryfiles

7
推荐指数
1
解决办法
2万
查看次数

更改|为Google App Engine数据存储区上的Model实例分配父级

是否可以将新父级更改或分配给已存在于数据存储区中的Model实例?例如,我需要这样的东西

task = db.get(db.Key(task_key))
project = db.get(db.Key(project_key))
task.parent = project
task.put()
Run Code Online (Sandbox Code Playgroud)

但它不能这样工作,因为task.parent是内置方法.我正在考虑为任务创建一个新的Key实例,但也无法更改密钥.

有什么想法吗?

python google-app-engine transactions google-cloud-datastore

6
推荐指数
1
解决办法
718
查看次数

模仿老派雪碧闪烁(理论和概念)

我正在尝试开发一个老式的NES风格的视频游戏,精灵闪烁和图形减速.我一直在想我应该用什么类型的逻辑来启用这样的效果.

如果我想要老式的NES风格,我必须考虑以下限制:

  • 屏幕上一次不超过64个精灵
  • 每条扫描线不超过8个精灵,或者Y轴上的每条线都不超过8个精灵
  • 如果屏幕上有太多动作,系统将图像冻结一帧以让处理器赶上动作

从我读过的内容来看,如果屏幕上有超过64个精灵,开发人员只会绘制高优先级精灵而忽略低优先级精灵.它们也可以交替,在奇数编号的相对帧上绘制每个偶数编号的精灵.

扫描线问题很有意思.从我的测试来看,通过像NES那样逐个像素地绘制精灵,不可能在XBOX 360 XNA框架上获得良好的速度.这就是为什么在老式游戏中,如果在一条线上有太多的精灵,如果它们被减半,就会出现一些.对于这个项目的所有目的,我将扫描线设置为8像素高,并通过Y定位将每个扫描线的精灵分组在一起.

为了澄清,我将以8x8像素,而不是1x1的批量绘制精灵到屏幕.

所以,愚蠢的我需要提出一个解决方案....

  • 一次在屏幕上显示64个精灵
  • 每个'scanline'有8个精灵
  • 可以根据优先级绘制精灵
  • 每帧可以间隔精灵
  • 模拟减速

这是我目前的理论

首先,我提出的一个基本想法是解决精灵优先级问题.假设0-255(0为低)之间的值,我可以分配精灵优先级,例如:

  • 0到63低
  • 63至127为中等
  • 128到191很高
  • 192到255是最大的

在我的数据文件中,我可以将每个精灵分配为特定优先级.创建父对象时,精灵将在其指定范围之间随机分配一个数字.然后我会按照从高到低的顺序绘制精灵,最终目标是绘制每个精灵.

现在,当一个精灵被绘制在一个帧中时,我会在其初始优先级内随机生成一个新的优先级值.但是,如果没有在帧中绘制精灵,我可以将32添加到其当前优先级.例如,如果该系统可只画出精灵下降到135的优先级,具有45°的初始优先级的子画面然后可以后不被抽的3帧绘制(45 + 32 + 32 + 32 = 141)

理论上,这将允许精灵交替帧,允许优先级,并将精灵限制为每个屏幕64个.

现在,有趣的问题是我如何将精灵限制为每个扫描线只有8个?

我想如果我将精灵高优先级排序为低优先级,则循环遍历循环直到我达到64个精灵.但是,我不应该只列出列表中的前64个精灵.

在绘制每个精灵之前,我可以通过计数器变量检查在它的相应扫描线中绘制了多少个精灵.例如:

  • 0到7之间的Y值属于扫描线0,scanlineCount [0] = 0
  • 8到15之间的Y值属于Scanline 1,scanlineCount [1] = 0
  • 等等

我可以为每个绘制的帧重置每条扫描线的值.在向下精灵列表的同时,如果在该扫描线中绘制了精灵,则向扫描线的相应计数器添加1.如果它等于8,则不绘制该精灵并转到具有下一个最低优先级的精灵.

慢一点

我需要做的最后一件事是模拟减速.我最初的想法是,如果我每帧绘制64个精灵并且还需要绘制更多的精灵,我可以将渲染暂停16ms左右.然而,在我玩过的NES游戏中,如果没有任何精灵闪烁,有时会减速,而即使有一些精灵闪烁,游戏也会漂亮地移动.

也许为每个在屏幕上使用精灵的对象赋予一个值(比如上面的优先级值),如果所有对象的组合值都超过阈值,那么引入减速?

结论...

我写的所有内容听起来是否合法且可行,或者它是一个白日梦吗?我可以用这个游戏编程理论思考哪些改进?

graphics xna animation sprite

20
推荐指数
1
解决办法
2439
查看次数

python和溢出字节?

我需要创建一个类似于C lanquage的变量.我需要范围为0-255的字节或无符号字符.这个变量应该溢出,这意味着......

myVar = 255
myVar += 1

print myVar #!!myVar = 0!!
Run Code Online (Sandbox Code Playgroud)

python variables overflow

10
推荐指数
3
解决办法
1168
查看次数

使用mysql从结果集中获取最后4行的最佳方法

任何人都可以告诉我,我需要使用mysql从结果集中获取最后4行.结果集共返回6条记录.

但是,我需要从last4获取记录...即,

Record-3
Record-4
Record-5
Record-6
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-order-by

1
推荐指数
2
解决办法
4777
查看次数

如何获取驱动器号和安装路径 - MSDN

我使用SetupDiGetClassDevs 函数-MSDN 从系统获取设备列表。

我还可以从设备获取供应商 ID 和产品 ID。

但我无法获取驱动器号和安装路径

例如,如果我插入 USB 驱动器意味着,我必须获得像“G:/”这样的驱动器号

请帮助我获取设备的驱动器号和安装路径

if (SetupDiEnumDeviceInterfaces(hDevInfo,
    NULL,&GUID_DEVINTERFACE_USB_DEVICE,i,&Interface_Info))
{
    wprintf(L"\tDeviccvcvcveInstanceId : %d\n", i); 

    pspdidd->cbSize = sizeof(*pspdidd); 

    SP_DEVICE_INTERFACE_DETAIL_DATA *pDetData = NULL;

    DWORD dwDetDataSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA) + 256;

    pDetData = (SP_DEVICE_INTERFACE_DETAIL_DATA*) malloc (dwDetDataSize);

    pDetData->cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA);

   SetupDiGetDeviceInterfaceDetail(hDevInfo,&Interface_Info,pDetData,dwDetDataSize, 
   NULL,&DeviceInfoData);

   qDebug ()<<QString::fromWCharArray( pDetData->DevicePath );

}
Run Code Online (Sandbox Code Playgroud)

c++ windows winapi

5
推荐指数
1
解决办法
6101
查看次数

如何在c ++中将utf-8转换为ASCII?

我收到服务器在utf-8的响应,但无法读取.如何在c ++中将utf-8转换为ASCII?

c++

8
推荐指数
3
解决办法
3万
查看次数