Предположим, что у меня есть std:: vector < Объект * >
. Вектор большой (> 1000 элементов), и каждый объект *
должен иметь обширные вычисления. Цикл for, который выполняет каждое вычисление на каждом элементе, может быть легко параллелизирован. На самом деле, я мог бы обрабатывать все 1000 элементы параллельно для максимального ускорения («смущающе параллельные?»)
Сейчас мне интересно 2 вещи:
1) Безопасно ли читать и писать в различные элементы std:: вектор
без блокировки? ( не изменение самого вектора!)
2) Есть ли простые способы или условные обозначения или узоры, которым следует следовать, чтобы разорвать цикл для и отправить в потоки?
-121--1830943-Мой код:
package com.testappmobile;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class testappmobileActivity extends Activity
{
final Activity activity = this;
private WebView webview;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the BACK key and if there's history
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
// If it wasn't the BACK key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
WebView webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress)
{
activity.setTitle("Loading...");
activity.setProgress(progress * 100);
if(progress == 100)
activity.setTitle(R.string.app_name);
}
});
webView.setWebViewClient(new WebViewClient() {
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
// Handle the error
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
});
webView.loadUrl("http://developer.android.com/index.html");
}
}
Возникла проблема с возвратом аппаратного обеспечения к работе. Приложение загружается нормально, как и страница, и все остальное, но как только я нажму кнопку «Назад» на телефоны, оно сбивается, а затем закрывается. Я искал Google последние 3 часов и нашел только расплывчатые ответы с очень малой информацией или нарушенными ссылками. Инструкции Google отстой, так как я новичок, и они предполагают, что вы знаете определенную сумму.
Где следует поместить код, если он находится не в том месте?
Есть ли ошибки?
Ура!