infeeldのプロフィール

@infeeld infeeld
ありがとう数9
質問数0
回答数13
ベストアンサー数
3
ベストアンサー率
37%
お礼率
0%

  • 登録日2009/02/24
  • マルチスレッドでのインスタンス変数

    http://itpro.nikkeibp.co.jp/article/COLUMN/20070820/279950/ このサイトに以下ような趣旨の記述があり、信じられない気持ちでいっぱいです。 「マルチスレッドのケース(たとえばサーブレットでは、)インスタンス変数はヒープ領域に 保持されるので、複数のスレッドからアクセスされるので情報が書き換えられる場合がある」 信じられないのは、インスタンス変数が書き換えられるということです。 サーブレットではインスタンス変数が共有されるのは理解していますが、 サーブレットから呼ばれるインスタンスで定義されているインスタンス変数も それに該当するのでしょうか。 それとも、サーブレット内だけの話で、サーブレットから呼ばれるインスタンスでは インスタンス変数は独立していると思ってよいでしょうか。 後者の認識ですが、こういう書き方をされると、サーブレットから呼ばれた先でも インスタンス変数が共有されると読めて、怖くて仕方ないです。

  • マルチスレッドでのインスタンス変数

    http://itpro.nikkeibp.co.jp/article/COLUMN/20070820/279950/ このサイトに以下ような趣旨の記述があり、信じられない気持ちでいっぱいです。 「マルチスレッドのケース(たとえばサーブレットでは、)インスタンス変数はヒープ領域に 保持されるので、複数のスレッドからアクセスされるので情報が書き換えられる場合がある」 信じられないのは、インスタンス変数が書き換えられるということです。 サーブレットではインスタンス変数が共有されるのは理解していますが、 サーブレットから呼ばれるインスタンスで定義されているインスタンス変数も それに該当するのでしょうか。 それとも、サーブレット内だけの話で、サーブレットから呼ばれるインスタンスでは インスタンス変数は独立していると思ってよいでしょうか。 後者の認識ですが、こういう書き方をされると、サーブレットから呼ばれた先でも インスタンス変数が共有されると読めて、怖くて仕方ないです。

  • サーブレット Java 

    サブクラス(内部クラス?)の内容をサーバで表示したいです 一度、同じ質問をしましたが解決できず、再質問いたしました。 ご回答よろしくお願いします。 まず、<jsp:include flush="true" page="/servlet/page.Sflow1"/>を使い jspでサーブレットを表示しています。 サーブレットではサブクラスを使用していますが、そのサブクラスの内容をサーバで表示するにはどうすればいいでしょうか。 以下、そのソースです。 ・・・・ public class Sflow1 extends HttpServlet{ private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String sql="select id,c_id,barcode from Flow order by id,c_id,date"; System.out.println("sql="+sql); //中略 HashMap<String,Keiro> hsFlow = new HashMap<String,Keiro>(); String idbk=""; String flowbk=null; while(rs.next()){ String id=rs.getString(1)+":"+rs.getString(2); String flow=rs.getString(3); if(id.equals(idbk)){ if(flowbk!=null){Keiro keiro=hsFlow.get(flowbk);if(keiro == null) keiro = new Keiro(); keiro.addKeiro(flow); hsFlow.put(flowbk,keiro); } } idbk = id; flowbk = flow; } PrintWriter out=response.getWriter(); Object maekeiro[]=hsFlow.keySet().toArray(); Arrays.sort(maekeiro); for(int i=0;i<maekeiro.length;i++){ System.out.println(maekeiro[i]+"からの動き"); hsFlow.get(maekeiro[i]).viewData(); out.println(maekeiro[i]+"からの動き"); } } //中略 class Keiro{ private HashMap<String,Integer> hsNext = new HashMap<String,Integer>(); private int soukei = 0; public void addKeiro(String atokeiro){ Integer i = hsNext.get(atokeiro); if (i==null) i=new Integer(0); hsNext.put(atokeiro,new Integer(i.intValue()+1)); soukei++; } public void viewData(){ Object atokeiro[]=hsNext.keySet().toArray(); Arrays.sort(atokeiro); for(int i=0;i<atokeiro.length;i++){ System.out.println("→"+atokeiro[i]+" "+(hsNext.get(atokeiro[i]).intValue()*100/soukei)+"%"); //このSystem.out.println(・・・)の部分をサーバで表示したいです。 } } } どうすれば標準出力(System.out.println)で表示した内容をサーバで表示することができるのでしょうか? サーブレットを宣言できないのでレスポンスできず・・・(そもそもサブクラスでサーブレットは宣言できるのですか?) 具体的なソース等ご教示お願いいたします。

    • ベストアンサー
    • tsa63688
    • Java
    • 回答数2
  • キャッシュ処理でDBへのアクセスを軽減

    キャッシュ処理でDBへのアクセスを軽減 お世話になっております。ちょっとしたシステムを作りレンタルサーバーへアップしようとしているのですが、表題のように、「キャッシュ処理でDBへのアクセスを軽減できるか?」といった旨の連絡をサーバ会社からいただきました。 http://○○○/~と、アクセスされたときDBを参照しDB内のデータを掲載するといった仕組みなのですが(これまで何度も同じような仕組みを作ってきている)、今回、「キャッシュ処理でDBへのアクセスを軽減できるか?」といった連絡を受け、自分の行ってきたものが誤っているのか?と皆さまのご意見を伺いたく投稿した次第です。 もちろん、テーブルの構成などによっても負荷は違ってくるかと想像出来ますが、「アクセスされたときDBを参照しDB内のデータを掲載するといった仕組み」といった内容程度しか伝えていないにも関わらずなので・・ また、この表題にあるキャッシュ処理でDBへのアクセスを軽減する・・ということを実現させるには、htmlファイルなど静的ファイルを作って・・という形になるのでしょうか? お忙しいなか恐縮ですが、アドバイスなどご意見を頂戴出来れば幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • a4_chapp
    • PHP
    • 回答数3
  • C言語で分からないところがあるのですが……

    C言語で分からないところがあるのですが…… すみません。C言語の課題で分からないところがあり、質問しに来ました。 ユーザから数を受けて、そこまでのフィボナッチ数列を表示させるというプログラムです。 下のソースコード(でいいんですよね?)は正しいやつです。 for文を使って、繰り返しの作業を行うことに成功しましたが、doとwhileに書き換える作業がうまくできません。 どなたか助けてください。 #include<stdio.h> fib(int n) { if(n == 1)return(1); else{ if(n == 2) return (1); else return fib(n-1) + fib(n-2); } } main() { int n, i ; printf("INPUT the number. : "); scanf("%d",&n); for(i=1; i<=n; i++){ printf("F%d = %d\n",i, fib(i)); } }

    • ベストアンサー
    • noname#160322
    • C・C++・C#
    • 回答数3