我需要编写webapp,用户可以根据图像颜色执行搜索.我的问题是如何存储颜色数据?我认为最好的解决方案是减少图像颜色并为每个r,g和b通道准备直方图,但我不知道如何设计数据库.我想使用MySQL DBMS.有人能指出我正确的方向吗?
问候
之前我正在使用HashMap
public Map<SocketChannel, UserProfile> clients = new HashMap<SocketChannel, UserProfile>();
Run Code Online (Sandbox Code Playgroud)
现在我已经切换到ConcurrentHashMap以避免同步块,现在我遇到了问题,我的服务器每秒都有200-400个并发客户端,预计会随着时间的推移而增长.
现在看起来像这样
public ConcurrentHashMap<SocketChannel, UserProfile> clients = new ConcurrentHashMap<SocketChannel, UserProfile>();
Run Code Online (Sandbox Code Playgroud)
我的服务器设计就像这样.我有一个工作线程来处理大量的数据包.每个数据包都使用packetHandler子程序(不是线程的一部分)进行检查,几乎任何客户端都可以随时调用它,它几乎就像静态但不是.
我的整个服务器大多是单线程的,除了数据包处理部分.
无论如何,当有人使用命令时,如在线计算所有客户端并从中获取一些信息.
当计数正在进行时(这会导致我的问题),客户端也可能会断开连接并从ConcurrentHashMap中删除.
另外我想在这里添加一些代码.
int txtGirls=0;
int vidGirls=0;
int txtBoys=0;
int vidBoys=0;
Iterator i = clients.values().iterator();
while (i.hasNext()) {
UserProfile person = (UserProfile)i.next();
if(person != null) {
if(person.getChatType()) {
if(person.getGender().equals("m"))
vidBoys++;
else //<-- crash occurs here.
vidGirls++;
} else if(!person.getChatType()) {
if(person.getGender().equals("m"))
txtBoys++;
else
txtGirls++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的意思是我当然要通过在Iterator中添加一个try-catch Exception来跳过这些空客户端来修复它.
但我不明白,如果检查上面是否(人!= null)不应该嵌套的代码自动工作..
如果它不意味着它在迭代时被删除,这应该是不可能的,因为它是线程安全的wtf?
我该怎么办?或者是try-catch Exception最好的方法?
这是例外
java.lang.NullPointerException
at …
Run Code Online (Sandbox Code Playgroud) 如果用户的鼠标已经离开了两个html元素(文本字段和跨区块),我想提醒一些事情.我如何在jquery中说AND,徒劳无功我试过这样的事情:
if ($('textarea.commentField') && $('span.loginPrompt')).mouseout(function() {
alert('something');
});
Run Code Online (Sandbox Code Playgroud) 如果我5 5
在终端输入,按回车键,然后再次按回车键,我想退出循环.
int readCoefficents(double complex *c){
int i = 0;
double real;
double img;
while(scanf("%f %f", &real, &img) == 2)
c[i++] = real + img * I;
c[i++] = 1 + 0*I; // most significant coefficient is assumed to be 1
return i;
}
Run Code Online (Sandbox Code Playgroud)
显然,该代码并没有为我完成工作(是的,我知道有一个缓冲区溢出等待发生).
scanf
除非我输入一个字母(或一些非数字,而不是空白字符串),否则不会退出.读取空行后如何让scanf退出?
我在erlang中有记录:
-record(myrec,
{
id = 0,
price = 0,
quantity = 0
}).
Run Code Online (Sandbox Code Playgroud)
然后我有一个记录列表,我想按ID和价格排序,按降序和升序排列,其中price是第一个键,如果两个记录具有相同的价格,我想按ID排序.
我怎样才能为此定义乐趣?
我是Erlang的新手:)
谢谢,nisbus
例如,如果我有一个 Time.now,我如何将其转换为友好的 url 字符串?
Time.now.some_method_here => some_url_friendly_string_here
Run Code Online (Sandbox Code Playgroud)
我相信有一个内置的 Ruby 方法可以做到这一点,但我似乎无法在 Google 上找到它。有任何想法吗?
是否有一个firefox插件或有没有办法使用firebug,这样你就可以在网站上选择一些文字,它会告诉你哪些样式用于那一段文字?
目前,如果我选择一些使用从其他地方导入的css样式的文本,我将不得不手动挖掘以找出正在使用的样式.有没有更简单的方法?
这是我的代码:
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
google.maps.event.addListener(map,'projection_changed', function () {
var proj = map.getProjection();
ltBound = proj.fromPointToLatLng(new google.maps.Point(0,100))
rbBound = proj.fromPointToLatLng(new google.maps.Point(100,200))
console.log(ltBound,rbBound)
});
Run Code Online (Sandbox Code Playgroud)
我想在谷歌地图上创建一个节点,但我无法使用fromPointToLatLng
正确的方式.我能做什么?
我有一个包含纬度和经度值的数据库.我一次只能显示一个标记.我想同时显示多个标记.我该怎么做?
有人质疑这个C++函数重载类似转换的类似问题 ,我理解这个问题的一般前提.寻找解决方案.
我有2个重载函数:
virtual IDataStoreNode* OpenNode(const char *Name, bool bCreateIfNotExist,int debug=0) { return 0;
}
virtual IDataStoreNode* OpenNode(const char* Name,int debug=0) const { return 0; }
Run Code Online (Sandbox Code Playgroud)
从错误中可以看出,bool和int不能用于区分函数重载.
问题是,有没有办法解决这个问题?