- src/main/scala/Main.scala
object Main {
def main(args: Array[String]): Unit = {
println("hello scala!")
package MyApp::CLI; | |
use Mojo::Base qw/Mojolicious::Command/; | |
# 他にサブコマンド間で共通の処理があれば実装する | |
# sub util_foo { "foo" } | |
# ... | |
1; |
<html> | |
<head> | |
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> | |
<script type="text/javascript"> | |
$( function() { | |
$('#hello').click( | |
function() { | |
$.ajax({ | |
url: "http://localhost:3000/hello.js", | |
type: "GET", |
#!/usr/bin/env perl | |
use Mojolicious::Lite; | |
get '/' => sub {} => 'index'; | |
post '/' => sub { | |
my $self = shift; | |
# is valid? | |
if ( $self->param('text') eq 'hoge' ) { |
package MyValidator; | |
use strict; | |
use warnings; | |
use parent 'Exporter'; | |
use FormValidator::Lite; | |
use Clone qw/clone/; |
gogoutineてGOMAXPROCSを設定しない限りはシングルスレッドなんですねえ。 | |
GOMAXPROCSはもうちょっとだけ複雑です。 | |
同時に動けるgoroutineの数の制限なのですが、 | |
read などのブロックするかもしれないシステムコールを発行する場合、発行前に「現在実行中のゴルーチン数」をデクリメントして、 | |
システムコールから返ってきたらそれをインクリメントします。 | |
で、デクリメントした時に、他に動けるスレッドがいなかったらスレッド起動して、他のgoroutineが動けるようにします。 | |
他のスレッドがすでにあって眠っていたら、それを起こしてgoroutineを実行させます。 | |
なので、ブロックする処理としない処理を混ぜてもいい感じに動くのです。 | |
で、その、スレッドを作ったり起動したりするのが実はちょっとだけ重いので、ベンチマーク結果を良くするためにはその処理が走らないように、 |