Здравствуйте, я делаю приложение чата в Android
В общем, у меня есть сервис, который содержит много классов и потоков.
в моем сервисе у меня был класс чтения входных сокетов, класс записи выходных данных сокетов и pinger, которые в итоге имеют 6 потоков.
На самом деле, я новичок в этой проблеме, и я могу сказать, что понятия не имею, что заставляет программу занимать высокий процент процессорных процессов. это может быть причиной слишком большого количества статических переменных? или может быть слишком много запущенных потоков, или слишком много локальных переменных?
Я не знаю точно, что происходит ...?
Итак, пожалуйста, поделитесь со мной своим опытом и знаниями
UPDATE
public void run() {
while(isRunning) {
try {
Thread.sleep(500);
if(!startCheck) {
//Log.v(TAG, "SocketQueue: "+socketTaskQueue.size()
if(socketTaskQueue.size() > 0) {
processSocketTask();// TODO
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
так что, в основном, я сделал свои темы, как в примере выше.
Итак, у меня есть вектор с именем socketTaskQueue, и задача этого потока - проверить, есть ли задача с сокетом или нет. если это так, тогда он выполнит функцию processSocketTask, которая получит верхний элемент векторной очереди и затем удалит его.
UPDATE
T.T этот пост смущает! я забыл поставить Thread.sleep () в некоторые из моих тем!
Извините за беспокойство, ребята! : Р