Процессор почтового ящика в распределенных системах

       // **For multiple permission you can use this code :**

       // **First:**
//Write down in onCreate method.

         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(new String[]{
                                    android.Manifest.permission.READ_EXTERNAL_STORAGE,
                                    android.Manifest.permission.CAMERA},
                            MY_PERMISSIONS_REQUEST);

         }

        //**Second:**
    //Write down in a activity.
     @Override
        public void onRequestPermissionsResult(int requestCode,
                                               String permissions[], int[] grantResults) {
            switch (requestCode) {
                case MY_PERMISSIONS_REQUEST:

                    if (grantResults.length > 0
                            && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                        new Handler().postDelayed(new Runnable() {
                            @Override
                            public void run() {
                                progressBar.setVisibility(View.GONE);
                                Intent i = new Intent(SplashActivity.this,
                                        HomeActivity.class);
                                startActivity(i);
                                finish();
                            }
                        }, SPLASH_DISPLAY_LENGTH);

                    } else {
                        finish();
                    }
                    return;
            }
        }
17
задан Juliet 1 February 2009 в 22:02
поделиться

2 ответа

Я думаю, что Вы были немного смущены терминологией. Процессы Erlang не обязательно соответствуют непосредственно процессам ОС. Данный процесс ОС может иметь несколько процессов Erlang (и обычно делает), во многом как Ваш процесс имеет несколько потоков. Если Вы хотите связаться между несколькими процессами ОС, можно хотеть проверить Система. Время выполнения. Дистанционная работа. Каналы. Ipc. Очевидно обертка MailboxProcessor-стиля могла быть создана вокруг этих API.

8
ответ дан 30 November 2019 в 14:06
поделиться

MailboxProcessor и AsyncReplyChannel не обеспечивают такой же прозрачности местоположения, как операция «pid bang» (Pid!) В Erlang. Конечно, это работает только тогда, когда распределенные узлы Erlang настроены правильно, то есть имена, DNS, синхронизированные модули, файлы cookie и т. Д. В OTP есть некоторые функции, упрощающие это администрирование. Конечно, если процессы Erlang находятся на одном узле, это просто работает. Но есть некоторые недостатки с распределенным Erlang.

«Сеть безопасна». Встроенные распределенные механизмы Erlang предполагают, что сеть безопасна. Таким образом, когда необходима безопасность, применяется подход к взаимодействию на основе сокетов с прокси-процессами Erlang.

«Сеть надежна». Одна из вещей, которые заставляют работать распределенный Erlang, - это его философия обработки ошибок, а именно то, что процессы ненадежны, и, следовательно, отказоустойчивость достигается только путем обмена данными между мониторами процессов. OTP кодифицирует шаблоны (например, супервизор) для реализации этой философии. Надежный обмен сообщениями в Erlang может быть достигнут через Mnesia (распределенная база данных), как это было сделано в RabbitMQ, но вы не получаете его из коробки.

В конце концов, распределенные коммуникации никогда не были такими простыми. Мы могли бы реализовать AsynchWorker на F #, чтобы действовать как наш прокси и связываться с ним через AsynchReplyChannel.Send. Нам все еще нужно думать об ошибках распределенных вычислений.

Наконец, параллелизм в стиле передачи сообщений не подразумевает внепроцессное взаимодействие.Это означает, что не существует общего состояния, которым можно было бы управлять с помощью блокировок, что дает более простую и менее подверженную ошибкам модель параллельных вычислений. Я думаю, что это Решето простых чисел - отличный пример этого стиля параллелизма. Пример F # не так эстетичен, как реализация Squeak или Erlang из-за отсутствия встроенного синтаксиса для передачи сообщений, но он работает.

8
ответ дан 30 November 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: