質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.33%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

540閲覧

【追記あり】スレッドの基本的な事が分からないので初心者向けの解説ページを所望いたします

moitaro123

総合スコア7

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2025/02/10 06:02

編集2025/02/12 13:37

実現したいこと

地図表示アプリをvisual studio2022で作成しております。


thread m_th=createThread();
m_th.readnextmap(m_stNextmapURL);

それでメインループで
if(m_th.checkREAD()){
koushin();
}
みたいな動作をさせたいと思っております。

なんか検索してみても
よく分からなかったので
(と言うかミューテックスが分からない)
初心者向けのスレッドの解説ページなどご存知でしたらお教え頂けないでしょうか?

クローズド環境のため
不躾な質問大変申し訳ございませんが
何か情報をお持ちな方はコメント頂けますと幸いです。

発生している問題・分からないこと

スレッドの基本的な事が良く分からない。
ミューテックスが違えば違うスレッドだと思っております。
だったらスレッドこんなに複雑にしないで良いのでは?

【追記ココから】
すいません。
使用しているソースを色々探してみると
ヘッダに
simpleThread::setThreadProc(void(*proc)(void *),void param)
との記載を見つけたのですが
例えばクラスのメソッドの記載方法が分かりません。
上記setThreadProcにHogeClassのvoid getID(str String)のメソッドを追加したい場合は
setThreadProc(hogeClass::getId,NULL)
としてもビルド通りませんでした。
setThreadProc(
(hogeClass::getId()),NULL)
とか色々やっても通らなくて混乱してきたので
ご助力頂ければ幸いです。

該当のソースコード

上記の通りです。

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

なんか良いページを見つけることが出来なかった

補足

visual studio2022で
c++で開発しております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2025/02/10 06:22

検索したのであればそれでどのような知識を得て何が分からなかったのかを明確にしたほうがより良い回答が得られると思います。
moitaro123

2025/02/10 07:10

ありがとうございます。 スレッドに「地図読め」と命令する方法がわからないのです。
fana

2025/02/10 10:04 編集

> thread m_th=createThread(); まずこの thread 型のことを他者(:私たち)が知る由も無さそうな気がするのですが,どうなんでしょう? メンバ関数として readnextmap() とか checkREAD() とかいうのがある class なのであれば > スレッドに「地図読め」と命令する方法 というのはその型の使い方に関することだと思うので,そのclassの出所に問うのが良いのではないでしょうか. > だったらスレッドこんなに複雑にしないで良いのでは? という話等も何のことを述べられているのかまったくわかりませんし.
hiroki-o

2025/02/10 10:56

フレームワークは何ですか? わからない場合、「新しいプロジェクトの作成」でテンプレートは何を選択していますか?
otn

2025/02/11 10:31

> スレッドの基本的な事が分からないので というタイトルだったので、コンピュータープログラムが動く仕組みの中の1つの概念であるスレッドについて、基本から理解したいという質問かと思ったのですが、 > 検索したのであればそれでどのような知識を得て何が分からなかったのかを明確にしたほうがより良い回答が得られると思います。 という問いかけに対して、 > スレッドに「地図読め」と命令する方法がわからないのです。 と、いきなり、正体不明のライブラリーの使い方の質問。 ①今困っているプログラムでの問題解決方法はさておき、「コンピュータープログラムが動く仕組みの中の1つの概念であるスレッドについて、基本から理解したい」。基本が理解できれば今困っているプログラムでの問題は自分で解決できそうなので、プログラムの問題については現時点では回答不要。基本を理解した上で再度考えても分からなければまた聞くかも。 ②今困っているプログラムでの解決方法が知りたいだけ のどちらのスタンスで質問するのか、整理した方が良いと思います。 端的に言い換えると、「目の前の問題を解決できればよく、同じようなケースにまた出会ったら、その時にまた質問する」「目の前の問題を自力で解決できるようになりたい」のどっちなのか。 あるいは質問を分けて2つ作るか。 どちらにしても、今の質問文に書いてある情報では不足ですね。 なお、mutex は排他制御の仕組みの1つです。
ttact
dodox86

2025/02/13 00:11

@質問者 moitaro123さん 【追記ココから】を読んで: もう質問の本旨から激しくズレています。スレッドの基本的な使い方、WEB記事の紹介を求めることから、お使いのオリジナルのC++クラスの使い方に至っていますね。 混乱してお困りなのは分かりますが、閲覧、回答する方々のモチベーションも下がりますので、ブン投げは止めましょう。 https://teratail.com/help/question-tips > 1. 質問をする前に心がけてほしいこと > お願い > teratailを「サポートセンター」だとは思わないでください。 別にteratailに限らず、他の技術系Q&Aサイトでも言えることだと思います。
fana

2025/02/13 02:14 編集

> ヘッダに > simpleThread::setThreadProc(void(*proc)(void *),void param) > との記載を見つけた そのヘッダ,あるいは何らかの付属するドキュメントなどに説明がないのでしょうか? (そういうものが一切無いのであれば,そんなのはとても使えたものではないので,それを使うこと自体をやめることを考えた方が良いかもしれません.この先も同じようにすぐに行き詰る可能性大な気がしますし.単に「スレッド」を扱いたいだけなのであれば,それを使わずに std::thread だとか別のを使うという選択肢もあり得るのではなかろうか,と.) 第二引数が void ではなくて void* なのであれば,C言語でわりとよく見かけたタイプの指定の仕方だと思います. そのスレッドが, 引数に param を渡す形で proc を呼び出すという話なのではないでしょうか. 仮にそういう話なのであれば,HogeClass のインスタンスを指すポインタを param に指定し, proc には「引数を HogeClass* にキャストして getID() を呼ぶ,みたいなことをする関数」を与えればよいのではないかと思いますが. ( simpleThread::setThreadProc() に「クラスのメソッド」を指定するのではなくて,「クラスのメソッドを呼ぶ関数」を指定する )
guest

回答1

0

まずは、スレッド 解説、でぐぐって、出てきたものを一通り読みましょう
また、ミューテックス 解説、でぐぐって、出てきたものを一通り読んでください。

そのうえで、疑問点や質問などが出てきた場合、その参照したページを提示して、聞きに来ましょう

投稿2025/02/11 05:26

y_waiwai

総合スコア88126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.33%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問