문제점 : 

for문 안에서 AsyncTask.execute() 실행 시 병렬로 처리되는 게 아니라 순차적으로 실행되는 오류가 있었음.


for(int i=0;i<50;i++){

    new AsyncTask<Void, Void, Void> {

        protected Void doInBackground(Void... voids) {

            connect(view.getId() == R.id.button_release);

            return null;

        }

    }.execute();
}


그러니까 위의 코드를 실행했다고 하면



                ↗ 일1 ↘

일 3개 시작 -> 일2  → 종료

                ↘ 일3  ↗


가 아닌


일 3개 시작 ->일1->일2->일3->종료


로 진행됨.



해결 : 


for(int i=0;i<50;i++){

    new AsyncTask<Void, Void, Void> {

        protected Void doInBackground(Void... voids) {

            connect(view.getId() == R.id.button_release);

            return null;

        }

    }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}


execute();

메소드 대신 

executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

를 사용해야 정상적으로 병렬로 처리가 된다.



참고 :


https://trend21c.tistory.com/1715

https://gist.github.com/benelog/5954649

'개발 > JAVA' 카테고리의 다른 글

JAVA SHA1 암호화  (0) 2018.07.20

** 코드

private String encryption(String text) {

    try{

        MessageDigest digest = MessageDigest.getInstance("SHA-1");

        digest.update(text.getBytes("UTF-8"));

        byte[] messageDigest = digest.digest();


        StringBuffer hexString = new StringBuffer();

        for(int i=0;i<messageDigest.length;i++){

            hexString.append(String.format("%02x", 0xFF & messageDigest[i]));

        }

        return hexString.toString();

    }catch (Exception e){

        e.printStackTrace();

    }

    return "error";

}



** 추가 설명

주황색으로 된 부분에 주의.

Integer.toHexString(0xFF & messageDigest[i]) 를 사용할 시 

숫자가 한 자리일 때는 한 자리로 표시하기 때문에 (8이 '08'이 아닌 '8'이 됨)

PHP에서 sha1 암호화 한 결과값과 다를 수 있음.



ex)

PHP 에서 암호문

   7fba808629a2d0be1d0f626417b301982b441ffd

String.format(...) 사용 시 추출된 암호문 (PHP에서 암호화 한 것과 동일)

   7fba808629a2d0be1d0f626417b301982b441ffd

Integer.toHexString(...) 사용 시 추출된 암호문

   7fba808629a2d0be1df626417b31982b441ffd



** 출처

http://nanstrong.tistory.com/206

https://stackoverflow.com/questions/13747489/php-sha1-not-equal-java-sha1

+ Recent posts